davecromberge opened a new pull request, #18861:
URL: https://github.com/apache/pinot/pull/18861
**Description**
Adds an additive ranged-read capability to the PinotFS SPI so callers can
read a specific byte range of a file without downloading the whole object.
- New default methods openForRead(URI uri, long offset, long length) and
supportsRangedRead() on PinotFS. Defaults throw UnsupportedOperationException /
return false, so all existing
implementations remain source- and binary-compatible — no behavior change
unless an implementation opts in.
- LocalPinotFS: implemented via RandomAccessFile + a bounded stream that
releases the file handle on close.
- GcsPinotFS: implemented via ReadChannel.seek/limit (a single ranged GET,
truncated at EOF).
**Motivation**
Enables targeted reads of file regions (e.g. Parquet footers and column
chunks) for engines/plugins that query columnar data in place, avoiding
full-object transfers.
**Testing**
LocalPinotFSTest covers mid-range, from-start, EOF truncation, zero-length,
whole-file, and invalid-argument cases (runs in CI). GcsPinotFSTest adds a
ranged-read case (credentials-gated, consistent with the existing GCS
integration test).
**PR Tags**
1. `feature`
2. `performance`
**release-notes**:
- Signature changes to public methods/interfaces
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]