Struct mz_persist_client::batch::BatchBuilderInternal
source · pub(crate) struct BatchBuilderInternal<K, V, T, D>{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>
impl<K, V, T, D> BatchBuilderInternal<K, V, T, D>
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
sourcepub async fn finish(
self,
registered_upper: Antichain<T>,
) -> Result<Batch<K, V, T, D>, InvalidUsage<T>>
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
.
sourcepub async fn add(
&mut self,
key: &[u8],
val: &[u8],
ts: &T,
diff: &D,
) -> Result<Added, InvalidUsage<T>>
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.
sourcepub async fn flush_many(
&mut self,
updates: BlobTraceUpdates,
) -> Result<(), InvalidUsage<T>>
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.
sourceasync fn flush_part(&mut self, columnar: BlobTraceUpdates)
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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.