Skip to main content

Module stash

Module stash 

Source
Expand description

The upsert-v2 source stash: the consolidating diff, the stash batcher types, and the per-flavor UpsertStashArms.

Structsยง

ChunkedArm ๐Ÿ”’
The chunked flavor: time-major UpsertChunkBatcher stash, FeedbackSpine feedback arrangement, bulk-probe drain.
PagedArm ๐Ÿ”’
The paged flavor: UpsertPagedBatcher stash, ValRowSpine feedback arrangement, cursor drain. Cold chains page out of RSS through the storage-owned column pager, captured once per batcher at construction.
UpsertDiff ๐Ÿ”’
UpsertDiffContainer ๐Ÿ”’
Derived columnar container for a struct.
UpsertDiffReference ๐Ÿ”’
Derived columnar reference for a struct.

Traitsยง

UpsertStashArm ๐Ÿ”’
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_operator holds 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 through record, consolidates it through chunker, and hands each readied chunk to push.
next_outer ๐Ÿ”’
The least time past every time sharing tsโ€™s mz_repr::Timestamp, or None when that timestamp is the maximum.
seal_upper ๐Ÿ”’
The start of the mz_repr::Timestamp after persist_upperโ€™s, capped at input_upper so no unfinalized time is extracted.

Type Aliasesยง

TimeMajorChunker ๐Ÿ”’
UpsertChunkerโ€™s time-major counterpart, for the chunked stash.
TimeMajorUpdate ๐Ÿ”’
One chunked-flavor stash update: UpsertUpdate with the time copied into the data, so the batcher sorts by (time, key).
UpsertChunk ๐Ÿ”’
One chunked-flavor stash chunk: a sorted, consolidated run of time-major updates, resident or spilled to the buffer pool.
UpsertChunkBatcher ๐Ÿ”’
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 (see mz_timely_util::columnar::chunk), so the not-yet-eligible backlog (the snapshot / persist-lag window) pages out of RSS instead of growing it.
UpsertChunker ๐Ÿ”’
The chunker that sorts and consolidates raw input into the Column chunks the paged stash batcher consumes.
UpsertPagedBatcher ๐Ÿ”’
The paged flavorโ€™s stash: the paged columnar merge batcher, consolidating like UpsertChunkBatcher but storing each chain entry as a Column routed through the storage-owned pager, which pages cold chains out of RSS.
UpsertUpdate ๐Ÿ”’
One source-stash update: a key, its dataflow time, and the payload diff. O is the columnar order key projected from the source FromTime (see UpsertSourceTime).