Skip to main content

merge_region_watermark_entries

Function merge_region_watermark_entries 

Source
fn merge_region_watermark_entries(
    merged: &mut BTreeMap<u64, MergeState>,
    entries: impl IntoIterator<Item = RegionWatermarkEntry>,
)
Expand description

Merge a batch of per-region watermark entries into the global merged state.

§Merge strategy: correctness over maximum

Flow checkpoint advancement requires provable watermarks so that incremental queries never miss rows. This merge uses correctness-first semantics:

Current stateNew entryResultRationale
ParticipatedProved(seq)Proved(seq)First proof for the region
ParticipatedUnprovedUnprovedOne branch cannot prove → region is unsafe
Proved(old)Proved(same)Proved(old)Convergent proof, keep
Proved(old)Proved(diff)Conflict([old,diff])Ambiguous → degrade to unproved
UnprovedanythingUnprovedAlready unsafe, stays unsafe
Conflict{..}Proved(seq)Conflict[…seq]Record for diagnostics

Using max(old, new) would be incorrect because it could advance a checkpoint past rows that a competing MergeScan sub-stage has not yet scanned, causing Flow to skip data.