Benchmark indexed-vector disk search - #1346
Draft
Yujie Zhang (yjiez) wants to merge 3 commits into
Draft
Conversation
Yujie Zhang (yjiez)
force-pushed
the
user/yujie/return-indexed-vectors-benchmark
branch
from
August 20, 2026 02:00
68dab88 to
ad9c9e8
Compare
Yujie Zhang (yjiez)
force-pushed
the
user/yujie/return-indexed-vectors
branch
2 times, most recently
from
August 20, 2026 10:46
faf5b0b to
4efb698
Compare
Add opt-in API latency and payload metrics plus a manual paired benchmark workflow for legacy and indexed-vector disk search. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Yujie Zhang (yjiez)
force-pushed
the
user/yujie/return-indexed-vectors-benchmark
branch
from
August 20, 2026 10:47
ad9c9e8 to
e533165
Compare
Decouple returned K from recall@K so indexed-vector benchmarks can exercise K=1000 with existing top-100 ground truth. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Release per-query vector boxes before pooled scratch is returned so the memory benchmark can measure the cleanup effect. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Summary
search_apiselector forlegacyandindexed-vectors, defaulting to legacy for existing inputsThis is a test/measurement PR stacked on #1345. It does not change
diskann-diskproduction Rust code beyond the commits already present in #1345.Collector behavior under measurement
The indexed-vector API uses one enabled/disabled collector path rather than per-mode capture policies:
search()leaves collection disabledsearch_with_indexed_vectors()enables collectionL-based collector capacityindexed_vector_cache_entrieslogs the captured count before final-winner pruningOnline A/B result
Run: https://github.com/microsoft/DiskANN/actions/runs/32323112240
Configuration: Graph search,
L=2000,K=100, beam width 4, four threads, and separate Load-only processes.The uncapped collector keeps recall and result payload unchanged. Its measured overhead remains in the low single digits. Compared with the earlier L-capped run, process-peak deltas remain effectively similar; cross-run latency differences should be treated as runner variance rather than a controlled direct comparison.
Validation
cargo check -p diskann-benchmark --features disk-indexcargo clippy -p diskann-benchmark --features disk-index -- -D warnings10 * 128 * sizeof(f32) = 5120bytes/queryThe full local benchmark suite still encounters an existing Git LFS pointer fixture in
flat_search_integration; affected and newly added disk-index tests pass.🤖 Generated with Claude Code