Skip to content

[Sync] Roll-up of internal changes for development change-over. - #714

Merged
Mark Hildebrand (hildebrandmw) merged 2 commits into
mainfrom
mhildebr/sync-squashed
Feb 4, 2026
Merged

[Sync] Roll-up of internal changes for development change-over.#714
Mark Hildebrand (hildebrandmw) merged 2 commits into
mainfrom
mhildebr/sync-squashed

Conversation

@hildebrandmw

Copy link
Copy Markdown
Contributor

This is a squashed roll-up of the internal changes made since the last sync. After the merging of this PR, development of the open-source portion of the code will be moved to GitHub.

CopilotAI review requested due to automatic review settings February 4, 2026 03:50

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Rolls up internal changes prior to shifting open-source development to GitHub, including new MinMax multi-vector distance support, refactors across async providers and benchmarks, and the introduction of a shared diskann-benchmark-core crate.

Changes:

  • Add MinMax quantized multi-vector distance implementations (MaxSim/Chamfer) and expose new MinMax APIs.
  • Refactor async provider + caching/BfTree initialization to return ANNResult and update call sites.
  • Split benchmark infrastructure into a new shared diskann-benchmark-core crate and reorganize benchmark search/streaming code.

Reviewed changes

Copilot reviewed 150 out of 219 changed files in this pull request and generated 7 comments.

Show a summary per file
FileDescription
diskann-quantization/src/minmax/multi/max_sim.rsNew MinMax multi-vector MaxSim/Chamfer implementation and tests
diskann-quantization/src/minmax/mod.rsExpose new MinMax modules/types (multi + recompress)
diskann-quantization/src/meta/vector.rsRefactor canonical front mut constructor with new unsafe API
diskann-quantization/src/lib.rsExport multi_vector module and add compile-fail tests path
diskann-quantization/src/error.rsAdd an internal Infallible error type
diskann-providers/src/utils/medoid.rsClean up test error handling without unwrap_err
diskann-providers/src/model/graph/provider/async_/table_delete_provider.rsFix test attribute ordering under cfg(feature="bf_tree")
diskann-providers/src/model/graph/provider/async_/postprocess.rsSwitch output population API to extend
diskann-providers/src/model/graph/provider/async_/inmem/provider.rsAdd DefaultAccessor impl for in-mem async provider
diskann-providers/src/model/graph/provider/async_/inmem/full_precision.rsSwitch output population API to extend
diskann-providers/src/model/graph/provider/async_/common.rsTighten vector store bounds to bytemuck::Pod and change zero-init
diskann-providers/src/model/graph/provider/async_/caching/utils.rsUpdate cache construction to handle fallible Cache::new
diskann-providers/src/model/graph/provider/async_/caching/example.rsUpdate example cache initialization to handle fallible Cache::new
diskann-providers/src/model/graph/provider/async_/caching/bf_cache.rsMake cache construction fallible and map bf-tree config errors
diskann-providers/src/model/graph/provider/async_/bf_tree/vector_provider.rsMake provider construction fallible and propagate config errors
diskann-providers/src/model/graph/provider/async_/bf_tree/quant_vector_provider.rsMake provider construction fallible and propagate config errors
diskann-providers/src/model/graph/provider/async_/bf_tree/neighbor_provider.rsMake provider construction fallible and propagate config errors
diskann-providers/src/model/graph/provider/async_/bf_tree/mod.rsIntroduce ConfigError wrapper and map into ANNError
diskann-providers/src/index/diskann_async.rsUpdate diversity-search tests to use real AttributeValueProvider
diskann-label-filter/src/stores/bftree_store.rsAdjust bf-tree store limits, add ConfigError conversion, add tests
diskann-disk/src/search/provider/disk_provider.rsSwitch output population API to extend and update diversity-search tests
diskann-disk/Cargo.tomlWorkspace dependency normalization + formatting
diskann-benchmark/src/utils/tokio.rsRemove multi-thread runtime helper (moved to benchmark-core)
diskann-benchmark/src/utils/streaming.rsExtend TagSlotManager with capacity + counters; remove dynamic config struct
diskann-benchmark/src/utils/mod.rsAdd SmallBanner display helper
diskann-benchmark/src/utils/filters.rsGeneralize filter strategy setup input types + add bitmap adaptor helper
diskann-benchmark/src/inputs/async_.rsSimplify GraphSearch config; switch runbook checks to benchmark-core BigANN
diskann-benchmark/src/backend/index/streaming/stats.rsNew streaming stats formatting + summary table
diskann-benchmark/src/backend/index/streaming/mod.rsNew streaming module wiring
diskann-benchmark/src/backend/index/streaming/managed.rsNew managed streaming layer (tag→slot mapping + maintenance triggering)
diskann-benchmark/src/backend/index/streaming/full_precision.rsNew full-precision streaming implementation using benchmark-core stages
diskann-benchmark/src/backend/index/spherical.rsSwitch to benchmark-core search infrastructure and new filter plumbing
diskann-benchmark/src/backend/index/search/range.rsNew range-search runner wrapper around benchmark-core
diskann-benchmark/src/backend/index/search/mod.rsNew search module layout
diskann-benchmark/src/backend/index/search/knn.rsNew knn-search runner wrapper around benchmark-core (KNN + MultiHop)
diskann-benchmark/src/backend/index/scalar.rsUpdate imports to new build/search module layout
diskann-benchmark/src/backend/index/range_search.rsRemove legacy range search implementation (moved to benchmark-core wrappers)
diskann-benchmark/src/backend/index/product.rsUpdate imports to new build/search module layout
diskann-benchmark/src/backend/index/multihop_filtered_search.rsRemove legacy multihop filtered search implementation (moved to benchmark-core)
diskann-benchmark/src/backend/index/mod.rsReorder/introduce new search + streaming modules
diskann-benchmark/src/backend/exhaustive/spherical.rsUpdate recall computation call signature
diskann-benchmark/src/backend/exhaustive/product.rsUpdate recall computation call signature
diskann-benchmark/src/backend/exhaustive/minmax.rsUpdate recall computation call signature + formatting
diskann-benchmark/example/spherical-filter.jsonFix query predicate file name
diskann-benchmark/example/async-multihop-filter-ground-truth-small.jsonAdd start_point_strategy to example
diskann-benchmark/example/async-filter.jsonFix query predicate file name
diskann-benchmark/example/async-filter-ground-truth.jsonAdd start_point_strategy to example
diskann-benchmark/Cargo.tomlAdd dependency on diskann-benchmark-core; add itertools; drop serde_yaml
diskann-benchmark-runner/src/ux.rsNew UX helpers for normalizing/stabilizing test output
diskann-benchmark-runner/src/utils/microseconds.rsAdd exported timed! macro
diskann-benchmark-runner/src/lib.rsExpose ux module behind feature for tests/tools
diskann-benchmark-runner/src/app.rsUse shared UX normalization/backtrace stripping in tests
diskann-benchmark-runner/src/any.rsAdd public Any::new and Any::raw APIs; update docs + tests
diskann-benchmark-runner/Cargo.tomlAdd ux-tools feature
diskann-benchmark-core/tests/bigann-ux/unrecognized-operation/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/unrecognized-operation/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/unrecognized-operation/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/unrecognized-dataset-key/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/unrecognized-dataset-key/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/unrecognized-dataset-key/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/stage-key-not-number/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/stage-key-not-number/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/stage-key-not-number/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/stage-key-not-integer/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/stage-key-not-integer/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/stage-key-not-integer/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/runbook-not-yaml-map/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/runbook-not-yaml-map/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/runbook-does-not-exist/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/runbook-does-not-exist/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/replace-tags-start-equals-end/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/replace-tags-start-equals-end/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/replace-tags-start-equals-end/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/replace-invalid-tags-range/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/replace-invalid-tags-range/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/replace-invalid-tags-range/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/replace-invalid-ids-range/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/replace-invalid-ids-range/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/replace-invalid-ids-range/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/replace-ids-start-equals-end/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/replace-ids-start-equals-end/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/replace-ids-start-equals-end/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/non-integer-max-pts/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/non-integer-max-pts/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/non-integer-max-pts/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/missing-max-pts/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/missing-max-pts/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/missing-max-pts/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/insert-start-equals-end/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/insert-start-equals-end/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/insert-start-equals-end/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/insert-invalid-range/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/insert-invalid-range/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/insert-invalid-range/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/delete-invalid-range/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/delete-invalid-range/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/delete-invalid-range/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/dataset-value-not-mapping/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/dataset-value-not-mapping/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/dataset-value-not-mapping/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/dataset-not-found/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/dataset-not-found/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/dataset-not-found/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/tests/bigann-ux/dataset-key-not-integer-or-string/runbook.yamlNew BigANN UX test input
diskann-benchmark-core/tests/bigann-ux/dataset-key-not-integer-or-string/expected.txtNew BigANN UX expected output
diskann-benchmark-core/tests/bigann-ux/dataset-key-not-integer-or-string/dataset.txtNew BigANN UX dataset selector
diskann-benchmark-core/src/utils.rsNew shared helper for averaging metrics
diskann-benchmark-core/src/tokio.rsNew shared tokio runtime factory (moved from benchmark crate)
diskann-benchmark-core/src/streaming/mod.rsNew streaming API module definition
diskann-benchmark-core/src/streaming/graph/test.rsTest helpers for streaming graph operations
diskann-benchmark-core/src/streaming/graph/mod.rsStreaming graph building blocks module
diskann-benchmark-core/src/streaming/graph/inplace_delete.rsBuild stage to benchmark inplace_delete
diskann-benchmark-core/src/streaming/graph/drop_deleted.rsBuild stage to benchmark drop_deleted_neighbors
diskann-benchmark-core/src/streaming/executors/mod.rsExecutor module entry point
diskann-benchmark-core/src/streaming/executors/bigann/withdata.rsBigANN runbook adaptor that maps ranges to data slices
diskann-benchmark-core/src/streaming/executors/bigann/mod.rsBigANN executor module exports
diskann-benchmark-core/src/streaming/api.rsNew generic streaming API traits + AnyStream
diskann-benchmark-core/src/search/mod.rsNew search API module and documentation
diskann-benchmark-core/src/search/graph/range.rsRange search runner + aggregation support
diskann-benchmark-core/src/search/graph/multihop.rsMulti-hop filtered search runner
diskann-benchmark-core/src/search/graph/mod.rsGraph search module exports + test provider
diskann-benchmark-core/src/search/graph/knn.rsKNN search runner + aggregation support
diskann-benchmark-core/src/lib.rsNew crate root and UX test helper wiring
diskann-benchmark-core/src/internal/mod.rsInternal benchmark-core module plumbing
diskann-benchmark-core/src/internal/buffer.rsInternal SearchOutputBuffer abstraction to reduce monomorphization
diskann-benchmark-core/src/build/mod.rsNew build API module and documentation
diskann-benchmark-core/src/build/ids.rsNew ID mapping utilities for build stages
diskann-benchmark-core/src/build/graph/single.rsSingle-insert build stage
diskann-benchmark-core/src/build/graph/multi.rsMulti-insert build stage
diskann-benchmark-core/src/build/graph/mod.rsBuild graph module exports
diskann-benchmark-core/Cargo.tomlNew crate manifest (feature-gated BigANN YAML parsing)
Cargo.tomlAdd benchmark-core to workspace; bump versions; update bf-tree dependency

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threaddiskann-quantization/src/meta/vector.rs
Comment threaddiskann-quantization/src/minmax/multi/max_sim.rs
Comment threaddiskann-providers/src/model/graph/provider/async_/common.rs
Comment threaddiskann-benchmark-runner/src/ux.rs
Comment threaddiskann-benchmark-core/src/streaming/api.rs
Comment threaddiskann-benchmark-core/src/streaming/api.rs
Comment threaddiskann-quantization/src/error.rs

CopilotAI commented Feb 4, 2026

Copy link
Copy Markdown
Contributor

Mark Hildebrand (@hildebrandmw) I've opened a new pull request, #715, to work on those changes. Once the pull request is ready, I'll request review from you.

CopilotAI commented Feb 4, 2026

Copy link
Copy Markdown
Contributor

Mark Hildebrand (@hildebrandmw) I've opened a new pull request, #716, to work on those changes. Once the pull request is ready, I'll request review from you.

CopilotAI commented Feb 4, 2026

Copy link
Copy Markdown
Contributor

Mark Hildebrand (@hildebrandmw) I've opened a new pull request, #717, to work on those changes. Once the pull request is ready, I'll request review from you.

@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Feb 4, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.26980% with 712 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.01%. Comparing base (528fd06) to head (bb765fe).

Files with missing linesPatch %Lines
...ann-benchmark/src/backend/index/streaming/stats.rs0.00%119 Missing ⚠️
diskann-benchmark/src/backend/index/benchmarks.rs18.25%103 Missing ⚠️
...mark/src/backend/index/streaming/full_precision.rs0.00%92 Missing ⚠️
...n-benchmark/src/backend/index/streaming/managed.rs0.00%79 Missing ⚠️
...ark-core/src/streaming/executors/bigann/parsing.rs89.59%46 Missing ⚠️
...iskann-benchmark/src/backend/index/search/range.rs0.00%46 Missing ⚠️
...rk-core/src/streaming/executors/bigann/withdata.rs0.00%34 Missing ⚠️
...ark-core/src/streaming/executors/bigann/runbook.rs94.08%21 Missing ⚠️
diskann-benchmark/src/backend/index/result.rs54.76%19 Missing ⚠️
diskann-benchmark-core/src/build/api.rs97.46%16 Missing ⚠️
... and 26 more
Additional details and impacted files

Impacted file tree graph

@@ Coverage Diff @@## main #714 +/- ##
==========================================
+ Coverage 86.70% 89.01% +2.30% 
==========================================
Files 398 428 +30 Lines 74238 78151 +3913 ==========================================
+ Hits 64371 69566 +5195 + Misses 9867 8585 -1282 
Files with missing linesCoverage Δ
diskann-benchmark-core/src/build/graph/single.rs100.00% <100.00%> (ø)
diskann-benchmark-core/src/search/graph/mod.rs100.00% <100.00%> (ø)
...nchmark-core/src/streaming/graph/inplace_delete.rs100.00% <100.00%> (ø)
diskann-benchmark-core/src/streaming/graph/test.rs100.00% <100.00%> (ø)
diskann-benchmark-core/src/tokio.rs100.00% <100.00%> (ø)
diskann-benchmark-core/src/utils.rs100.00% <100.00%> (ø)
diskann-benchmark-runner/src/any.rs100.00% <100.00%> (ø)
diskann-benchmark-runner/src/app.rs78.03% <100.00%> (-1.55%)⬇️
diskann-benchmark-runner/src/utils/microseconds.rs100.00% <ø> (ø)
diskann-benchmark/src/backend/exhaustive/minmax.rs100.00% <ø> (ø)
... and 71 more

... and 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hildebrandmw
Mark Hildebrand (hildebrandmw) merged commit d9d6ce2 into mainFeb 4, 2026
9 checks passed
@hildebrandmw
Mark Hildebrand (hildebrandmw) deleted the mhildebr/sync-squashed branch February 4, 2026 17:26
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@hildebrandmw@codecov-commenter@arrayka@harsha-simhadri@suri-kumkaran@arkrishn94