Bump version to 0.53.0#1111
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the Rust workspace’s crate versions to 0.53.0 to align the repository with the DiskANN v0.53.0 release described in the PR notes.
Changes:
- Bumped
[workspace.package]version from0.52.0→0.53.0. - Updated internal workspace dependency version pins to
0.53.0. - Regenerated
Cargo.lockto reflect the new crate versions.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| Cargo.toml | Bumps workspace/package version and internal workspace dependency versions to 0.53.0. |
| Cargo.lock | Updates resolved package versions to 0.53.0 across the workspace. |
💡 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 #1111 +/- ##
==========================================
- Coverage 90.53% 89.46% -1.08%
==========================================
Files 482 482
Lines 91092 91092
==========================================
- Hits 82473 81497 -976
- Misses 8619 9595 +976
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
There's currently a bug in the bf_tree impl for the inplace delete flow for this version. I have a fix for it in #1106 coming. BF tree isn't published in this version of the project, so it should be fine to merge. This is more of an FYI |
DiskANN v0.53.0 Release Notes
Breaking Changes
An AI generated, human reviewed list of changes is summarized below.
Paged search overhauled — channel-based API (#1078)
PagedSearchStateand its'static-bound pause/resume model have been replaced with an async, channel-based interface. The recommended way to drive paged search is now via atokio::sync::mpscchannel, with the searcher embedded in an otherwise-'staticfuture. See the rendered RFC for the new shape. Callers wired againstPagedSearchStatemust migrate to the channel API.Users of paged search via
wrapped_async::DiskANNIndexthat know their inner futures will never suspend can use the newwrapped_async::DiskANNIndex::paged_search_no_await; this will efficiently run paged searches with minimal synchronization overhead.DiskANNIndex::flat_searchremoved (#1076)DiskANNIndex::flat_searchand theIdIteratortrait have been removed from thediskanncrate. Equivalent functionality lives on the new inherent methodDiskIndexSearcher::flat_searchindiskann-disk. This unblocks the experimental directions in #1067 and #983.DiskIndexSearcher::flat_searchnow batched (#1097)The new
DiskIndexSearcher::flat_searchuses the bulkpq_distancespath instead of one-vector-at-a-timeAccessor::build_query_computer+evaluate_similarity. Downstream behavior is equivalent but tighter resource bounds apply.centroidremoved from PQ interfaces (#1010)The dataset-centroid argument has been removed from
FixedChunkPQTableconstruction,populate, and most other PQ APIs. The shift only ever worked for L2 distance and was silently ignored for inner-product / cosine, so passing it was a footgun. When an L2 shift is required, fold it into the PQ pivots instead (the library now does this internally).Flat search interface (#983)
A new
flatmodule indiskannadds a provider-agnostic brute-force search surface, mirroring the shape of graph search. Backends implement a single trait,DistancesUnordered<C>(inflat/strategy.rs), which fuses iteration and distance computation, allowing any backend (in-memory, quantized, disk, remote) to plug into a shared algorithm. See the rendered RFC. This is additive but is the new canonical surface — direct ad-hoc flat-search call sites should migrate.bf_treeextracted intodiskann-bftreecrate (#1020)The bf_tree provider has been moved out of
diskann-providers(previously atdiskann-providers/src/model/graph/provider/async_/bf_tree/) into a new standalonediskann-bftreecrate. Along with the move:DeletionCheck,AsDeletionCheck, andRemoveDeletedIdsAndCopy.Consumers must update their
Cargo.tomlto depend ondiskann-bftreeand update import paths.direct_distance_implandinner_product_rawre-exposed (#1081)direct_distance_impl(free function) andFixedChunkPQTable::inner_product_rawarepubagain after being privatized in #1044. Restored to unblock a downstream user. Not breaking in the typical direction — this restores previously available API surface.MinMax
recompresstakes a grid-scale parameter (#1109)The MinMax
recompressAPI now accepts a grid-scale parameter.New Features
Merged PRs
DispatchRuleby @hildebrandmw in [benchmark] RemoveDispatchRule#1064flat_searchfromDiskANNIndexby @hildebrandmw in [diskann/disk] Removeflat_searchfromDiskANNIndex#1076Inputsmore by @hildebrandmw in [benchmark] SimplyInputsmore. #1077diskann-garnetby @hildebrandmw in Remove direct accessor call indiskann-garnet#1098DiskIndexSearcher::flat_searchto use batching by @hildebrandmw in RefactorDiskIndexSearcher::flat_searchto use batching #1097compute_vecs_l2sq: Replace scalar L2 Squared norm with SIMD-optimized FastL2NormSquared by @arazumov in compute_vecs_l2sq: Replace scalar L2 Squared norm with SIMD-optimized FastL2NormSquared #1107Full Changelog: v0.52.0...v0.53.0