Expand description
A ContainerBuilder that consolidates (D, T, R) updates and emits columnar containers.
Two-level buffering:
- AoS staging
Vec<(D, T, R)>with a small cap soconsolidate_updates’n log ncost stays bounded. Cancellations and same-key updates collapse here before reaching the column-shaped storage. A drain-multiple-of-half-cap trick keeps the leftover in staging, so cross-batch keys with the same(D, T)continue consolidating on the next sort. - SoA accumulator: one sub-container per column. Drains push in fixed-size chunks
(
DRAIN_CHUNK_ROWS) with three sequential per-column passes per chunk, checking the serialized size per chunk; at the flush threshold the accumulator is serialized into an alignedVec<u64>and shipped asColumn::Align, and the trailing partial onfinishships asColumn::Typed.
Generic over (D, T, R): Columnar via the columnar tuple decomposition
<(D, T, R) as Columnar>::Container = (D::Container, T::Container, R::Container).
Structs§
- Consolidating
Column Builder - A container builder that consolidates
(D, T, R)updates and emitsColumn<(D, T, R)>. See the module docs for the two-level buffering pipeline.