Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions crates/ruvector-diskann/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ description = "DiskANN/Vamana — SSD-friendly approximate nearest neighbor sear
default = []
gpu = [] # Feature flag for GPU acceleration (CUDA/Metal stubs)
simd = ["simsimd"]
# BET 1 (ADR-200): fixed-topology reuse + periodic rebuild under metric drift.
reuse-under-drift = []

[dependencies]
memmap2 = { workspace = true }
Expand Down
8 changes: 7 additions & 1 deletion crates/ruvector-diskann/src/graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,13 @@ impl VamanaGraph {
self.greedy_search_fast(vectors, query, beam_width, &mut visited)
}

fn robust_prune(
/// α-robust pruning of a candidate set down to `max_degree` diversified out-edges.
///
/// Exposed at crate visibility (no logic change) so the `reuse-under-drift`
/// incremental-reindex path ([`crate::reuse::IncrementalIndex`]) can refresh a single
/// displaced node's neighbourhood without a full rebuild. Used internally by
/// [`VamanaGraph::build`].
pub(crate) fn robust_prune(
&self,
vectors: &FlatVectors,
node: u32,
Expand Down
5 changes: 5 additions & 0 deletions crates/ruvector-diskann/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@ pub mod error;
pub mod graph;
pub mod index;
pub mod pq;
/// Fixed-topology reuse + periodic rebuild under metric drift (BET 1, ADR-200).
#[cfg(feature = "reuse-under-drift")]
pub mod reuse;

pub use error::{DiskAnnError, Result};
pub use index::{DiskAnnConfig, DiskAnnIndex};
pub use pq::ProductQuantizer;
#[cfg(feature = "reuse-under-drift")]
pub use reuse::{DriftingIndex, IncrementalIndex, RebuildPolicy, RecallTrigger};
Loading
Loading