Uh oh!
There was an error while loading. Please reload this page.
save and load max_record_size and leaf_page_size for bftrees - #724
Conversation
There was a problem hiding this comment.
Pull request overview
This PR enhances the BfTree save/load functionality by adding support for persisting and restoring the max_record_size and leaf_page_size configuration parameters. This builds upon previously implemented save/load infrastructure and leverages new getter functions available in bftree version 0.4.7.
Changes:
- Introduced
BfTreeParamsstruct to encapsulate BfTree configuration parameters (bytes, max_record_size, leaf_page_size) - Updated
SavedParamsandQuantParamsto useBfTreeParamsinstead of simpleusizevalues - Modified load functions to restore BfTree configurations with saved max_record_size and leaf_page_size values
- Updated tests to demonstrate save/load of BfTree configurations
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## main #724 +/- ##
==========================================
- Coverage 89.01% 89.00% -0.02%
==========================================
Files 428 428 Lines 78151 78235 +84 ==========================================
+ Hits 69566 69630 +64 - Misses 8585 8605 +20
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
## What's Changed ### API Breaking Changes * Remove the `experimental_avx512` feature. by @hildebrandmw in #732 * Use VirtualStorageProvider::new_overlay(test_data_root()) in tests by @Copilot in #726 * save and load max_record_size and leaf_page_size for bftrees by @backurs in #724 * [multi-vector] Verify `Standard` won't overflow in its constructor. by @hildebrandmw in #757 * VirtualStorageProvider: Make new() private, add new_physical by @Copilot in #764 * [minmax] Refactor full query by @arkrishn94 in #770 * Bump diskann-quantization to edition 2024. by @hildebrandmw in #772 ### Additions * [multi-vector] Enable cloning of `Mat` and friends. by @hildebrandmw in #759 * adding bftreepaths in mod.rs by @backurs in #775 * [quantization] Add `as_raw_ptr`. by @hildebrandmw in #774 ### Bug Fixes * Fix `diskann` compilation without default-features and add CI tests. by @hildebrandmw in #722 ### Docs and Comments * Updating the benchmark README to use diskann-benchmark by @bryantower in #709 * Fix doc comment: Windows line endings are \r\n not \n\r by @Copilot in #717 * Fix spelling errors in streaming API documentation by @Copilot in #715 * Add performance diagnostic to `diskann-benchmark` by @hildebrandmw in #744 * Add agents.md onboarding guide for coding agents by @Copilot in #765 * [doc] Fix lots of little typos in `diskann-wide` by @hildebrandmw in #771 ### Performance * [diskann-wide] Optimize `load_simd_first` for 8-bit and 16-bit element types. by @hildebrandmw in #747 ### Dependencies * Bump bytes from 1.11.0 to 1.11.1 by @dependabot[bot] in #723 * [diskann] Add note on the selection of `PruneKind` in `graph::config::Builder`. by @hildebrandmw in #734 * [diskann-providers] Remove the LRU dependency and make `vfs` and `serde_json` optional. by @hildebrandmw in #733 ### Infrastructure * Add initial QEMU tests for `diskann-wide`. by @hildebrandmw in #719 * [CI] Skip coverage for Dependabot. by @hildebrandmw in #725 * Add miri test coverage to CI workflow by @Copilot in #729 * [CI] Add minimal ARM checks by @hildebrandmw in #745 * Enable CodeQL security analysis by @Copilot in #754 ## New Contributors * @backurs made their first contribution in #724 * @arkrishn94 made their first contribution in #770 **Full Changelog**: 0.45.0...0.46.0
This is a small PR, which builds upon an internal PR where we started implementing save/load functionality for bftrees. Since we recently bumped up bftree version to 0.4.7, which implements getter functions for max_record_size and leaf_page_size, we can save and load these variables when saving and load bftrees. This is necessary to do because we might need to increase max_record_size and leaf_page_size if the dimensionality of the vectors is too large