Skip to content

feat: refine logical vector index into an IVF view#6400

Merged
Xuanwo merged 3 commits intomainfrom
xuanwo/logical-vector-index-ivf-view
Apr 3, 2026
Merged

feat: refine logical vector index into an IVF view#6400
Xuanwo merged 3 commits intomainfrom
xuanwo/logical-vector-index-ivf-view

Conversation

@Xuanwo
Copy link
Copy Markdown
Collaborator

@Xuanwo Xuanwo commented Apr 3, 2026

This PR introduces LogicalVectorIndex as a logical aggregate and moves IVF-specific partition inspection into LogicalIvfView, so the API boundary matches the actual semantics.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

ACTION NEEDED
Lance follows the Conventional Commits specification for release automation.

The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification.

For details on the error please inspect the "PR Title Check" action.

@Xuanwo Xuanwo marked this pull request as ready for review April 3, 2026 10:16
@Xuanwo Xuanwo changed the title Refine logical vector index into an IVF view feat: refine logical vector index into an IVF view Apr 3, 2026
@github-actions github-actions bot added the enhancement New feature or request label Apr 3, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 3, 2026

Codecov Report

❌ Patch coverage is 85.47170% with 77 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
rust/lance/src/index/append.rs 80.44% 26 Missing and 18 partials ⚠️
rust/lance/src/index/vector.rs 68.47% 29 Missing ⚠️
rust/lance/src/index/vector/ivf.rs 55.55% 4 Missing ⚠️

📢 Thoughts on this report? Let us know!

@Xuanwo Xuanwo merged commit effca10 into main Apr 3, 2026
28 checks passed
@Xuanwo Xuanwo deleted the xuanwo/logical-vector-index-ivf-view branch April 3, 2026 14:02
Xuanwo added a commit that referenced this pull request Apr 3, 2026
This changes segmented vector index optimize so the default rebalance
path keeps segment boundaries and rewrites only the single worst segment
in each run. It builds on #6400's logical vector index / IVF view work
and avoids the current behavior where segmented optimize treats the
logical index as one physical index.

I also added a regression test that creates a skewed two-segment IVF
index and verifies that optimize replaces only the oversized segment
while leaving the other segment untouched.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants