Skip to content

feat(bindings): expose layered RaBitQ build and query options - #9845

Draft
BubbleCal wants to merge 6 commits into
yang/layered-rabitq-stackfrom
yang/layered-rq-bindings
Draft

BubbleCal wants to merge 6 commits into
yang/layered-rabitq-stackfrom
yang/layered-rq-bindings

Conversation

@BubbleCal

@BubbleCal BubbleCal commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Expose opt-in layered IVF_RQ builds for widths 3 through 9 through Python and Java, together with sign/high/Full precision and the explicit experimental cascade factor. Builds default to layered=false and queries default to Full.

Dependencies

Stacked directly on #9490, core c140ffc9eede. Bindings do not depend on the lazy/resident/cache optimization stack.

Compatibility

Append the new Python query options after existing parameters, preserving the positional order of approx_mode, distance_range and search_effort. Java JAR and JNI versions must be upgraded together.

Validation

On Linux x86_64 with Rust 1.98.1, Python 3.12 and JDK 17: full-workspace formatting/clippy, Python make install/build and uv run make lint, all 9 layered Python tests, an explicit legacy positional-argument and combined search-effort/precision/cascade regression, Java Spotless, JNI clippy with tests and -D warnings, and JNITest/VectorIndexTest passed. The final Java-only test repair adds recall >=0.5 checks across all widths; Rust and Python source matches the earlier validated tree exactly.

No new performance measurement is claimed. CI is not awaited.

Tracking

OSS-2355, OSS-2559

@github-actions github-actions Bot added A-python Python bindings A-java Java bindings + JNI enhancement New feature or request labels Oct 9, 2026
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-bindings branch from b8dc7e6 to 659cbe6 Compare October 9, 2026 16:48
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-resident-sharing branch from a4a54d8 to 1556d91 Compare October 9, 2026 16:48
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-resident-sharing branch from 1556d91 to 5dfca17 Compare October 9, 2026 18:55
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-bindings branch from 659cbe6 to 436eafc Compare October 9, 2026 18:55
@BubbleCal
BubbleCal changed the base branch from yang/layered-rq-resident-sharing to yang/layered-rabitq-stack October 9, 2026 18:56

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-java Java bindings + JNI A-python Python bindings enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant