Struct mz_persist_client::batch::BatchBuilderInternal

source ·
pub(crate) struct BatchBuilderInternal<K, V, T, D>
where K: Codec, V: Codec, T: Timestamp + Lattice + Codec64,
{
Show 17 fields lower: Antichain<T>, inclusive_upper: Antichain<Reverse<T>>, shard_id: ShardId, version: Version, blob: Arc<dyn Blob>, metrics: Arc<Metrics>, write_schemas: Schemas<K, V>, buffer: BatchBuffer, max_kvt_in_run: Option<(Vec<u8>, Vec<u8>, T)>, runs: Vec<usize>, run_meta: Vec<RunMeta>, parts_written: usize, num_updates: usize, parts: BatchParts<T>, since: Antichain<T>, inline_upper: Antichain<T>, _phantom: PhantomData<fn(_: K, _: V, _: T, _: D)>,
}

Fields§

§lower: Antichain<T>§inclusive_upper: Antichain<Reverse<T>>§shard_id: ShardId§version: Version§blob: Arc<dyn Blob>§metrics: Arc<Metrics>§write_schemas: Schemas<K, V>§buffer: BatchBuffer§max_kvt_in_run: Option<(Vec<u8>, Vec<u8>, T)>§runs: Vec<usize>§run_meta: Vec<RunMeta>§parts_written: usize§num_updates: usize§parts: BatchParts<T>§since: Antichain<T>§inline_upper: Antichain<T>§_phantom: PhantomData<fn(_: K, _: V, _: T, _: D)>

Implementations§

source§

impl<K, V, T, D> BatchBuilderInternal<K, V, T, D>
where K: Debug + Codec, V: Debug + Codec, T: Timestamp + Lattice + Codec64, D: Semigroup + Codec64,

source

pub(crate) fn new( cfg: BatchBuilderConfig, metrics: Arc<Metrics>, write_schemas: Schemas<K, V>, shard_metrics: Arc<ShardMetrics>, batch_write_metrics: BatchWriteMetrics, lower: Antichain<T>, blob: Arc<dyn Blob>, isolated_runtime: Arc<IsolatedRuntime>, shard_id: ShardId, version: Version, since: Antichain<T>, inline_upper: Option<Antichain<T>>, ) -> Self

source

pub async fn finish( self, registered_upper: Antichain<T>, ) -> Result<Batch<K, V, T, D>, InvalidUsage<T>>

Finish writing this batch and return a handle to the written batch.

This fails if any of the updates in this batch are beyond the given upper.

source

pub async fn add( &mut self, key: &[u8], val: &[u8], ts: &T, diff: &D, ) -> Result<Added, InvalidUsage<T>>

Adds the given update to the batch.

The update timestamp must be greater or equal to lower that was given when creating this BatchBuilder.

source

pub async fn flush_many( &mut self, updates: BlobTraceUpdates, ) -> Result<(), InvalidUsage<T>>

Adds a batch of updates all at once. The caller takes responsibility for ensuring that the data is appropriately chunked.

The update timestamps must be greater or equal to lower that was given when creating this BatchBuilder.

source

async fn flush_part(&mut self, columnar: BlobTraceUpdates)

Flushes the current part to Blob storage, first consolidating and then columnar encoding the updates. It is the caller’s responsibility to chunk current_part to be no greater than BatchBuilderConfig::blob_target_size, and must absolutely be less than mz_persist::indexed::columnar::KEY_VAL_DATA_MAX_LEN

Trait Implementations§

source§

impl<K, V, T, D: Debug> Debug for BatchBuilderInternal<K, V, T, D>
where K: Codec + Debug, V: Codec + Debug, T: Timestamp + Lattice + Codec64 + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<K, V, T, D> Freeze for BatchBuilderInternal<K, V, T, D>
where T: Freeze,

§

impl<K, V, T, D> !RefUnwindSafe for BatchBuilderInternal<K, V, T, D>

§

impl<K, V, T, D> Send for BatchBuilderInternal<K, V, T, D>

§

impl<K, V, T, D> Sync for BatchBuilderInternal<K, V, T, D>

§

impl<K, V, T, D> Unpin for BatchBuilderInternal<K, V, T, D>
where T: Unpin,

§

impl<K, V, T, D> !UnwindSafe for BatchBuilderInternal<K, V, T, D>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, U> CastInto<U> for T
where U: CastFrom<T>,

source§

fn cast_into(self) -> U

Performs the cast.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<P, R> ProtoType<R> for P
where R: RustType<P>,

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<'a, S, T> Semigroup<&'a S> for T
where T: Semigroup<S>,

source§

fn plus_equals(&mut self, rhs: &&'a S)

The method of std::ops::AddAssign, for types that do not implement AddAssign.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more