Expand description
Columnar container infrastructure for differential dataflow.
Experimental. API and internals are still settling. Expect breaking changes; do not rely on stability across releases.
Known rough edges:
ContainerBytesforUpdatesTypedisunimplemented!(). The wire-side container isRecordedUpdates, whoseContainerBytesis implemented;UpdatesTypedis the input-builder type and isn’t shipped over channels.leave_dynamicconsolidates eagerly on each batch; thecrate::dynamiccounterpart defers consolidation. Same observable semantics, different work distribution.join_functionis restricted to same-ColumnarUpdateinput and output; it does not yet generalize toKey/Val/Diff-changing maps.- Several public items (
join_function,leave_dynamic,DynTime) have no in-tree callers yet and are not exercised by tests.
Files inside this module that touch both the local module path and the
columnar crate should use columnar as col;
to disambiguate.
Module layout (bottom-up):
layout—ColumnarUpdate/ColumnarLayout/OrdContainer.updates—UpdatesTyped<U>trie,Consolidating,UpdatesBuilder.builder—ValColBuilder: the input-sideContainerBuilder.exchange—ValPact/ValDistributor: PACT for shuffling.arrangement— type aliases +Coltainer+TrieChunker+trie_merger+ValMirror(trace Builder).- This file —
RecordedUpdates<U>(the stream container), container-trait impls (Negate,Enter,Leave,ResultsIn), and top-level operators (join_function,leave_dynamic,as_recorded_updates).
Re-exports§
pub use updates::UpdatesTyped;pub use builder::ValBuilder as ValColBuilder;pub use exchange::ValPact;pub use arrangement::ValBatcher;pub use arrangement::ValBuilder;pub use arrangement::ValChunker;pub use arrangement::ValSpine;
Modules§
- arrangement
- Columnar arrangement plumbing.
- batcher
- A
Batcherfor columnar streams that merges sorted chains via the free functions intrie_merger. - builder
ValColBuilder: the ContainerBuilder that feeds the dataflow input side.- exchange
- Exchange / parallelization contract for
RecordedUpdates. - layout
- Layout traits for columnar arrangements.
- spill
- Traits for paging chunks of merge-batcher state to and from backing storage.
- updates
- Trie-structured update storage.
Structs§
- Recorded
Updates - A thin wrapper around
Updatesthat tracks the pre-consolidation record count for timely’s exchange accounting. This wrapper is the stream container type; theTrieChunkerstrips it, passing bareUpdatesTypedinto the merge batcher.
Constants§
- LINK_
TARGET - Target size for update batches, in number of updates.
Functions§
- as_
recorded_ updates - Extract a
Collection<_, RecordedUpdates<U>>from a columnarArranged. - join_
function - A columnar flat_map: iterates RecordedUpdates, calls logic per (key, val, time, diff), joins output times with input times, multiplies output diffs with input diffs.
- leave_
dynamic - Leave a dynamic iterative scope, truncating PointStamp coordinates.
Type Aliases§
- DynTime
- Timestamp shape of a dynamic iterative scope: an outer timestamp paired
with a per-level
PointStampof loop counters.