Change search_buffer_visited_set_ default from false to true - #389
Open
yuejiaointel wants to merge 1 commit into
Open
yuejiaointel wants to merge 1 commit into
yuejiaointel wants to merge 1 commit into
Conversation
intel#364 fixed the bug where this flag was silently dropped on the dynamic index's batch search path. With that fixed, regression testing (48 dataset/mode/metric/variant combinations, k=100, recall 0.90-0.95) showed a consistent 1.2x-1.4x QPS gain with no recall cost and no regressions. Flipping the default makes this available without users needing to know the flag exists. Not verified outside the tested range (very low k, or recall well below 0.90) -- set explicitly to false if a workload falls outside the high-recall/high-neighbor regime and shows a regression.
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
VamanaSearchParameters::search_buffer_visited_set_) skips redundant distance recomputation for candidates already seen during a search. It defaulted tofalse.Evidence
Ran a full regression campaign via the project's CI benchmark pipeline: 2 datasets (cohere-1m, dbpedia-1536) × 2 index modes (static, dynamic) × 3 distance metrics (MIP, Cosine, L2) × 4 storage variants (uncompressed-fp16, uncompressed-fp32, LeanVec, LVQ) = 48 combinations, k=100, recall targets 0.90/0.95, comparing the flag off vs on.
Caveat
Not independently verified outside the tested range (very low k, or recall targets well below 0.90) — the existing code comment already flags this as a "high-recall or high-neighbor regime" optimization. Callers with workloads clearly outside that regime should verify for their own case and set the flag to
falseexplicitly if needed.Test plan
🤖 Generated with Claude Code