lance-format / lance-format/lance
Reduce latency sensitivity to small files
Open
@wjones127 is already working on this.
Since Apr 28, 2025.
performance
- Dominant language
- Rust
- Stars
- 7.1k
- Forks
- 852
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 272
Description
Currently, the number of IOPS used to scan files is O(N * M) where N is the number of fragments and M is the number of columns. (This assumes each fragment has one data file, for simplicity.)
We can see this below, in the time to scan 10 columns from 128 rows in a dataset from S3. At 128 fragments, there are is just one row per data file.
For files smaller than the block size, we can reduce this to exactly N IOPS by:
- Storing the data file size in bytes in the manifest, to avoid the initial
HEADrequest - Read the whole data file at once, if the file is smaller than the block size.
For files larger than this, we can still make this more O(N) by:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.