vector-store: using new inmem provider in diskann - #540
Open
Akvear wants to merge 7 commits into
Open
Conversation
Akvear
force-pushed
the
new-inmem-basics
branch
2 times, most recently
from
July 30, 2026 10:26
bd540b4 to
39cd783
Compare
ewienik
requested changes
Jul 30, 2026
Contributor
Author
|
Changes:
|
Akvear
commented
Jul 30, 2026
ewienik
requested changes
Jul 30, 2026
Contributor
Author
|
no need for review yet |
There was a problem hiding this comment.
Pull request overview
Implements baseline DiskANN vector operations using the new experimental in-memory provider.
Changes:
- Adds vector insertion, deletion, ANN search, and counting.
- Introduces partition and memory-allocation handling.
- Updates DiskANN dependencies to the new provider revision.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
crates/vector-store/src/vs_index/diskann.rs |
Implements DiskANN index operations. |
crates/vector-store/Cargo.toml |
Replaces the legacy provider dependency. |
Cargo.toml |
Updates DiskANN revisions and provider dependency. |
Cargo.lock |
Records resolved dependency changes. |
Contributor
Author
|
Changes:
|
Akvear
marked this pull request as ready for review
July 31, 2026 13:16
this crate was just merged into DiskANN and provides In-Mem 2.0 which has significant improvements like: - arbitrary ExternalIds - improved concurrency safety of insert/delete/search On top of that there is an additional commit with fix to compilation this commit SHA is used to include both the changes and the fix
…ider The new inmem provider has similar API to the current one but comes with performance, safety and general improvements
Contributor
Author
|
rebased on master |
ewienik
requested changes
Jul 31, 2026
operates on a sigle tokio worker in inplace_delete() we pass pruned_degree as num to replace this tells diskann engine how many replacement edges should be added per affected (neighbour of deleted) node
index.search() outputs a vector of neighbours that need distances to be added to them, hence the State::search() helper added space_type, l_default and beam_width to DiskannParams added to unit test
remove partition doesnt affect count, same as in usearch.
Contributor
Author
|
changes:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is an alternative to #535 with the newly merged Diskann In Mem 2.0 provider.
It is more convenient to use because of arbitrary ids but it is still experimental and likely to require fixes from the DiskANN team. I think it's better to try and incorporate it rather than relying on the old provider.
Fixes: VECTOR-714