Expand description
The upsert-v2 source stash: the consolidating diff, the stash batcher
types, and the per-flavor UpsertStashArms.
Structsยง
- Chunked
Arm ๐ - The chunked flavor: time-major
UpsertChunkBatcherstash,FeedbackSpinefeedback arrangement, bulk-probe drain. - Paged
Arm ๐ - The paged flavor:
UpsertPagedBatcherstash,ValRowSpinefeedback arrangement, cursor drain. Cold chains page out of RSS through the storage-owned column pager, captured once per batcher at construction. - Upsert
Diff ๐ - Upsert
Diff ๐Container - Derived columnar container for a struct.
- Upsert
Diff ๐Reference - Derived columnar reference for a struct.
Traitsยง
- Upsert
Stash ๐Arm - The flavor-specific pieces of the upsert-v2 operator: the stash batcher,
the feedback arrangementโs spine, and how the drain reads prior state.
build_upsert_operatorholds the flavor-independent operator loop and calls through this trait at the few points where the flavors diverge.
Functionsยง
- flush_
through ๐ - The shared body of the armsโ
flush: writes each update into a raw column throughrecord, consolidates it throughchunker, and hands each readied chunk topush. - next_
outer ๐ - The least time past every time sharing
tsโsmz_repr::Timestamp, orNonewhen that timestamp is the maximum. - seal_
upper ๐ - The start of the
mz_repr::Timestampafterpersist_upperโs, capped atinput_upperso no unfinalized time is extracted.
Type Aliasesยง
- Time
Major ๐Chunker UpsertChunkerโs time-major counterpart, for the chunked stash.- Time
Major ๐Update - One chunked-flavor stash update:
UpsertUpdatewith the time copied into the data, so the batcher sorts by(time, key). - Upsert
Chunk ๐ - One chunked-flavor stash chunk: a sorted, consolidated run of time-major updates, resident or spilled to the buffer pool.
- Upsert
Chunk ๐Batcher - The chunked flavorโs stash: differentialโs chunk merge batcher over
ColumnChunks. Data is pushed in unsorted. The batcher maintains geometrically-sized sorted chains and consolidates via the UpsertDiff Semigroup automatically. Committed chunks spill their bodies to the process buffer pool (seemz_timely_util::columnar::chunk), so the not-yet-eligible backlog (the snapshot / persist-lag window) pages out of RSS instead of growing it. - Upsert
Chunker ๐ - The chunker that sorts and consolidates raw input into the
Columnchunks the paged stash batcher consumes. - Upsert
Paged ๐Batcher - The paged flavorโs stash: the paged columnar merge batcher, consolidating
like
UpsertChunkBatcherbut storing each chain entry as aColumnrouted through the storage-owned pager, which pages cold chains out of RSS. - Upsert
Update ๐ - One source-stash update: a key, its dataflow time, and the payload diff.
Ois the columnar order key projected from the sourceFromTime(seeUpsertSourceTime).