[core][flink][spark] Refresh data evolution vector indexes incrementally - #8818
[core][flink][spark] Refresh data evolution vector indexes incrementally#8818leaves12138 wants to merge 2 commits into
Conversation
d756da5 to
86c6eb8
Compare
86c6eb8 to
3c26b06
Compare
|
Older versions of the vector index are skipped by the refresh planner when |
|
The feature “automatically refresh the old vector index once after an upgrade” has not yet been implemented**. The old index lacks |
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.