[core][flink][spark] Refresh data evolution vector indexes incrementally#8818
Draft
leaves12138 wants to merge 1 commit into
Draft
[core][flink][spark] Refresh data evolution vector indexes incrementally#8818leaves12138 wants to merge 1 commit into
leaves12138 wants to merge 1 commit into
Conversation
leaves12138
force-pushed
the
codex/de-vector-index-refresh
branch
from
July 23, 2026 12:57
fc35361 to
d756da5
Compare
leaves12138
force-pushed
the
codex/de-vector-index-refresh
branch
from
July 23, 2026 14:29
d756da5 to
86c6eb8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Data-evolution append tables can partially update an indexed vector column, for example by filling an embedding from
NULLto a value. Incremental global-index builds previously considered only uncovered row ranges, so an existing vector index could remain readable but permanently miss those updated vectors unless users performed a full rebuild.This change refreshes only affected logical vector-index ranges while keeping the old index active until its replacement is ready.
Changes
scanSnapshotIdinGlobalIndexMeta.sourceMeta, encoded with aDEIXmagic number and version. Source metadata is recorded unconditionally once the build has a scan snapshot, independent of scalar/vector index type.maxSequenceNumbernewer thanscanSnapshotId.User impact
Users can continuously populate embedding columns and run incremental index builds. Search continues using the previous complete index during construction, then switches atomically to the more complete replacement without an index-unavailable window. Scalar generic indexes also carry the scan watermark for future type-specific handling, without changing their refresh behavior.
Tests
git diff --checkpassed.