Skip to main content

Batch

Trait Batch 

Source
pub trait Batch: BatchReader + 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".

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§