Skip to content

upstream: tiered index Rust bindings (cuvs follow-up 4/4) #1685

Description

@jamie8johnson

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions