Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize IOPS for opening fragment #2420

Open
wjones127 opened this issue May 31, 2024 · 0 comments
Open

Optimize IOPS for opening fragment #2420

wjones127 opened this issue May 31, 2024 · 0 comments
Labels
performance rust Rust related tasks

Comments

@wjones127
Copy link
Contributor

As found in the unit tests1, to open a fragment we require:

  • 4 IOPS per data file
  • (optionally) 1 IOP for a deletion file

If we started storing the size of data files in the manifest, we could skip the first IOP to get the size of the file.

The remaining IOPS are retrieving data from the end of the file. I haven't fully investigated, but I bet they are all within the last block for many file, so we might be able to get them all in a single IOP.

With these two optimizations, that would bring our IOPS per fragment open down to 1 per data file plus (maybe) 1 for the deletion file.

Footnotes

  1. https://github.com/lancedb/lance/blob/d6476fd4fe09737104540d5d05d25a2cde3f643b/rust/lance/src/dataset/fragment.rs#L2418-L2425

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance rust Rust related tasks
Projects
None yet
Development

No branches or pull requests

1 participant