Skip to content

feat(index): defer layered Full reads to native survivors - #9834

Draft
BubbleCal wants to merge 5 commits into
yang/layered-rabitq-stackfrom
yang/layered-rq-lazy-full
Draft

BubbleCal wants to merge 5 commits into
yang/layered-rabitq-stackfrom
yang/layered-rq-lazy-full

Conversation

@BubbleCal

@BubbleCal BubbleCal commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Support layered widths 3 through 9 in the opt-in lazy Full pipeline (LANCE_RQ_LAZY_FULL=1): stage sign-plane bounds, gather only the ex-plane rows the native heap can still need, and score survivors in probe order. Preserve native ordered results, distances, ties and pruning; introduce no fp32 refinement. Include task-based staging/gather progress, eager routing for predicted-dense probes, and whole-probe threshold publication.

Dependencies

Stacked directly on #9490.

Integrated Lance main b3c8619886b9 and the updated 3–9-bit layered prerequisites. Standalone benchmark/POC tools remain excluded.

The lazy caller uses main's shared sub-index reader and retains query timing, including result materialization.

Validation

This PR tree passed formatting and full-workspace clippy (--all --tests --benches -- -D warnings, Rust 1.98.1, Linux x86_64). The integrated composition passed 670 BQ tests and 22 layered integration tests on x86_64, plus 22 layered and 111 lazy/resident integration tests on macOS arm64. Production and Rust test source equality was verified after the final dependency refresh; the only later source change adds Java test coverage.

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

Tracking

OSS-2561

@github-actions github-actions Bot added A-index Vector index, linalg, tokenizer enhancement New feature or request labels Oct 9, 2026
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-lazy-full branch from d9ae54b to 455f096 Compare October 9, 2026 16:48
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-reader-controls branch from 30dbd46 to 1e0475f Compare October 9, 2026 16:48
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-lazy-full branch from 455f096 to 259b911 Compare October 9, 2026 18:55
@BubbleCal
BubbleCal force-pushed the yang/layered-rq-reader-controls branch from 1e0475f to 1c5c215 Compare October 9, 2026 18:55
@github-actions github-actions Bot added A-python Python bindings A-java Java bindings + JNI A-deps Dependency updates A-format On-disk format: protos and format spec docs format-change A change to the format spec, which requires a vote. Remove if minor (e.g. fixing typo). labels Oct 9, 2026
@BubbleCal
BubbleCal changed the base branch from yang/layered-rq-reader-controls 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-deps Dependency updates A-format On-disk format: protos and format spec docs A-index Vector index, linalg, tokenizer A-java Java bindings + JNI A-python Python bindings enhancement New feature or request format-change A change to the format spec, which requires a vote. Remove if minor (e.g. fixing typo).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant