microsoft/DiskANN v0.54.0
microsoft/DiskANN
Captured source
source ↗DiskANN v0.54.0
Repository: microsoft/DiskANN
Tag: v0.54.0
Published: 2026-06-15T19:20:38Z
Prerelease: no
Release notes:
Breaking changes since 0.53.0
Graph search: DataProvider contract collapsed into SearchAccessor (#1067)
Accessor, BuildQueryComputer, ExpandBeam, SearchExt, and AsNeighbor/NeighborAccessor are merged into a single SearchAccessor trait. The indexing layer no longer has a notion of element types.
- Upgrade: Implement
SearchAccessorinstead of the removed traits; useSearchAccessor::expand_beamfor search.SearchStrategy/InsertStrategy/DefaultSearchStrategy/DefaultPostProcessornow carry a lifetime, and the query is passed intosearch_accessor(accessors may now borrow the query).SearchPostProcessno longer takes aQueryComputer(only requiresHasId). The blanketworkingset::Fillimpl forworkingset::Mapwas removed — implementFillyourself, or use the new synchronousMap::fillhelper.
Insert/prune: consolidated into PruneAccessor (#1138, follow-up to #1067)
Removed DelegateNeighbor, AsNeighbor, AsNeighborMut, HasElementRef, BuildDistanceComputer, workingset::Fill, and workingset::AsWorkingSet, folded into a single PruneAccessor trait.
- Upgrade: Implement
PruneAccessor(providesneighbors()for neighbor delegation andfill()returning both aViewand the distance computer). Noteneighbors()now borrows&mut self.
VectorId: removed scalar conversion traits/bounds (#1145, #1133)
Dropped VectorIdTryFrom, TryIntoVectorId, methods vector_id_try_from/try_into_vector_id, helpers vecid_from_u32/vecid_from_usize, and IdConversionError/ErrorToVectorId. Internal IDs no longer need to convert to/from usize.
- Upgrade: Where
usizeconversion is still required (e.g. roaring-treemap keys indiskann-label-filter), add an explicitIntoUsizebound (now required onRoaringAttributeStore,InlineBetaStrategy,QueryBitmapEvaluator/BitmapFilter).DiskANNIndex::prune_rangenow takesimpl IntoIterator + Sendinstead ofRange— construct the iterator for your ID type at the call site.SimpleNeighborProviderAsyncandbftree::VectorProviderare no longer generic over the ID type (fixed tou32).
DiskIndexReader: dropped vestigial VectorType generic (#1161)
- Upgrade: Replace
DiskIndexReader::::new(...)withDiskIndexReader::new(...).
Filtered search renames (#1149)
MultihopSearch → MultihopFilterSearch; benchmark config phases MultiHopSearchPhase/InlineSearchPhase → MultihopFilterSearchPhase/InlineFilterSearchPhase.
- Upgrade: Update references to the new names.
diskann-garnet FFI: BIN/Q8 quantizers, bumped to 2.0.0 (#1050)
Vectors are now stored as Poly; a type-erased GarnetQuantizer trait replaces index/provider type parameterization. New FFI: insert() returns a success/training-ready flag, plus build_quant_table() and backfill_quant_vectors() for caller-driven async training/backfill. Accessor renamed to DynamicAccessor; the FSM is now lockable and gained visit_used().
- Upgrade: Garnet consumers must adopt the new 2.0.0 FFI surface (handle the new
insert()return flag and drivebuild_quant_table/backfill_quant_vectors).
Full list of changes.
- Multi-vector MaxSim benchmark with BYOTE factory by @suri-kumkaran in https://github.com/microsoft/DiskANN/pull/1027
- BufferedFnPtr and take
UnalignedSlice. by @hildebrandmw in https://github.com/microsoft/DiskANN/pull/1113 - [diskann-wide] Test unaligned loads properly. by @hildebrandmw in https://github.com/microsoft/DiskANN/pull/1110
- [diskann-garnet] Implement BIN and Q8 quantizers by @metajack in https://github.com/microsoft/DiskANN/pull/1050
- Right-size tile conversion buffer in
tiled_reduceby @suri-kumkaran in https://github.com/microsoft/DiskANN/pull/1123 - Add JobId labels to disk benchmark CI runners by @arrayka in https://github.com/microsoft/DiskANN/pull/1120
- nightly: remove stale
bf_treefeature from DISKANN_FEATURES by @Copilot in https://github.com/microsoft/DiskANN/pull/1112 - Add a small streaming runbook and groundtruth to test_data by @magdalendobson in https://github.com/microsoft/DiskANN/pull/1127
- fix: redirect disk-index benchmark build artifacts to target/tmp by @arrayka in https://github.com/microsoft/DiskANN/pull/1132
- Remove
try_into_vector_idconversion in prune. by @hildebrandmw in https://github.com/microsoft/DiskANN/pull/1133 - [diskann-garnet] Fix handling of missing quant vectors during delete() by @metajack in https://github.com/microsoft/DiskANN/pull/1130
- Simplify the
DataProvidercontract for graph search by @hildebrandmw in https://github.com/microsoft/DiskANN/pull/1067 - Add Documentation DO/DON'T section in
agents.mdby @suri-kumkaran in https://github.com/microsoft/DiskANN/pull/1103 - Fix quantizer detection in train_quantizer() and set_element() by @metajack in https://github.com/microsoft/DiskANN/pull/1140
- add bf_tree benchmark infrastructure by @JordanMaples in https://github.com/microsoft/DiskANN/pull/1106
- [RFC] What filtered search algorithms should DiskANN support? by @magdalendobson in https://github.com/microsoft/DiskANN/pull/1128
- Inline filtered search with adaptive L by @magdalendobson in https://github.com/microsoft/DiskANN/pull/1131
- [benchmark] Spherical exhaustive benchmark threadpool bug by @arkrishn94 in https://github.com/microsoft/DiskANN/pull/1148
- Consolidate insert into
PruneAccessorby @hildebrandmw in https://github.com/microsoft/DiskANN/pull/1138 - Rename MultihopSearch to MultihopFilterSearch by @magdalendobson in https://github.com/microsoft/DiskANN/pull/1149
- [bftree] Bug with writing length to neighbor list by @arkrishn94 in https://github.com/microsoft/DiskANN/pull/1150
- Fix handling of deletes and ID minting during concurrent insert/delete by @metajack in https://github.com/microsoft/DiskANN/pull/1146
- [VectorId] Remove Id conversion bounds and traits by @arkrishn94 in https://github.com/microsoft/DiskANN/pull/1145
- Remove vestigial VectorType parameter from DiskIndexReader by @doliawu in https://github.com/microsoft/DiskANN/pull/1161
- change documentation link to repository link by @harsha-simhadri in https://github.com/microsoft/DiskANN/pull/1156
- [diskann-garnet] Fix handling of start points on fresh indexes by @metajack in https://github.com/microsoft/DiskANN/pull/1167
- Bump version to 0.54.0 by...
Excerpt shown — open the source for the full document.
Notability
notability 3.0/10Minor version update of existing library.