differential_dataflow::trace

Trait 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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

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

An immutable collection of updates.

Source§

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>

Source§

type Merger = OrdKeyMerger<L>

Source§

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

Source§

type Merger = OrdValMerger<L>