Follow-up cuvs contribution #4 of 4 — the substantial one. Single-feature PR per upstream norms.
What
Rust bindings for the tiered index (c/include/cuvs/neighbors/tiered_index.h): a brute-force tier absorbs incremental inserts while a CAGRA tier serves the bulk, with background compaction. Largest API surface of the queued contributions; survey the C header fully before scoping (build/extend/search/compact/serialize as available).
cqs angle (the payoff)
This is the upstream half of the ROADMAP item "Kill the periodic full HNSW rebuild": cqs watch-mode currently rebuilds the vector index from scratch past hnsw_rebuild_threshold, and the content-hash-aware-drain machinery exists only to bridge that gap. A tiered index absorbs watch-mode inserts incrementally. After upstream merge + release: prototype an IndexBackend on it and A/B index-freshness latency vs the rebuild path.
Upstream guidelines
Same digest as #1682: tests required (insert-after-build visibility, tier compaction behavior, search correctness across tiers), no rebase after review, single-feature scope, maintainers label, plain imperative title, RAPIDS copyright headers, branch off main.
Etiquette gate + sequencing
Last in the queue: hold until at least one of the smaller follow-ups (#1682, scalar, refine) has merged — establishes reviewer trust before the big one. Implementation can proceed in ~/cuvs-contrib (branch rust-tiered-index).
Follow-up cuvs contribution #4 of 4 — the substantial one. Single-feature PR per upstream norms.
What
Rust bindings for the tiered index (
c/include/cuvs/neighbors/tiered_index.h): a brute-force tier absorbs incremental inserts while a CAGRA tier serves the bulk, with background compaction. Largest API surface of the queued contributions; survey the C header fully before scoping (build/extend/search/compact/serialize as available).cqs angle (the payoff)
This is the upstream half of the ROADMAP item "Kill the periodic full HNSW rebuild": cqs watch-mode currently rebuilds the vector index from scratch past
hnsw_rebuild_threshold, and the content-hash-aware-drain machinery exists only to bridge that gap. A tiered index absorbs watch-mode inserts incrementally. After upstream merge + release: prototype anIndexBackendon it and A/B index-freshness latency vs the rebuild path.Upstream guidelines
Same digest as #1682: tests required (insert-after-build visibility, tier compaction behavior, search correctness across tiers), no rebase after review, single-feature scope, maintainers label, plain imperative title, RAPIDS copyright headers, branch off main.
Etiquette gate + sequencing
Last in the queue: hold until at least one of the smaller follow-ups (#1682, scalar, refine) has merged — establishes reviewer trust before the big one. Implementation can proceed in ~/cuvs-contrib (branch
rust-tiered-index).