Trait differential_dataflow::trace::Batch

source ·
pub trait Batch: BatchReader
where Self: Sized,
{ type Merger: Merger<Self>; // Required method fn empty(lower: Antichain<Self::Time>, upper: Antichain<Self::Time>) -> Self; // Provided method fn begin_merge( &self, other: &Self, compaction_frontier: AntichainRef<'_, Self::Time>, ) -> Self::Merger { ... } }
Expand description

An immutable collection of updates.

Required Associated Types§

source

type Merger: Merger<Self>

A type used to progressively merge batches.

Required Methods§

source

fn empty(lower: Antichain<Self::Time>, upper: Antichain<Self::Time>) -> Self

Produce an empty batch over the indicated interval.

Provided Methods§

source

fn begin_merge( &self, other: &Self, compaction_frontier: AntichainRef<'_, Self::Time>, ) -> Self::Merger

Initiates the merging of consecutive batches.

The result of this method can be exercised to eventually produce the same result that a call to self.merge(other) would produce, but it can be done in a measured fashion. This can help to avoid latency spikes where a large merge needs to happen.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<B: Batch> Batch for Rc<B>

An immutable collection of updates.

§

type Merger = RcMerger<B>

source§

fn empty(lower: Antichain<Self::Time>, upper: Antichain<Self::Time>) -> Self

Implementors§

source§

impl<L: Layout> Batch for OrdKeyBatch<L>

§

type Merger = OrdKeyMerger<L>

source§

impl<L: Layout> Batch for OrdValBatch<L>

§

type Merger = OrdValMerger<L>