Struct mz_persist_client::batch::Batch
source · pub struct Batch<K, V, T, D>{ /* private fields */ }
Expand description
A handle to a batch of updates that has been written to blob storage but which has not yet been appended to a shard.
A Batch needs to be marked as consumed or it needs to be deleted via Self::delete. Otherwise, a dangling batch will leak and backing blobs will remain in blob storage.
Implementations§
source§impl<K, V, T, D> Batch<K, V, T, D>
impl<K, V, T, D> Batch<K, V, T, D>
sourcepub fn rewrite_ts(
&mut self,
frontier: &Antichain<T>,
new_upper: Antichain<T>
) -> Result<(), InvalidUsage<T>>
pub fn rewrite_ts( &mut self, frontier: &Antichain<T>, new_upper: Antichain<T> ) -> Result<(), InvalidUsage<T>>
Efficiently rewrites the timestamps in this not-yet-committed batch.
This Batch represents potentially large amounts of data, which may have partly or entirely been spilled to s3. This call bulk edits the timestamps of all data in this batch in a metadata-only operation (i.e. without network calls).
Specifically, every timestamp in the batch is logically advanced_by the
provided frontier
.
This method may be called multiple times, with later calls overriding previous ones, but the rewrite frontier may not regress across calls.
When this batch was created, it was given an upper
, which bounds the
staged data it represents. To allow rewrite past this original upper
,
this call accepts a new upper
which replaces the previous one. Like
the rewrite frontier, the upper may not regress across calls.
Multiple batches with various rewrite frontiers may be used in a single crate::write::WriteHandle::compare_and_append_batch call. This is an expected usage.
sourcepub async fn delete(self)
pub async fn delete(self)
Deletes the blobs that make up this batch from the given blob store and marks them as deleted.
sourcepub fn into_hollow_batch(self) -> HollowBatch<T>
pub fn into_hollow_batch(self) -> HollowBatch<T>
Turns this Batch
into a HollowBatch
.
NOTE: If this batch is not eventually appended to a shard or dropped, the data that it represents will have leaked.
sourcepub fn into_transmittable_batch(self) -> ProtoBatch
pub fn into_transmittable_batch(self) -> ProtoBatch
Turns this Batch
into a ProtoBatch
, which can be used to
transfer this batch across process boundaries, for example when
exchanging data between timely workers.
NOTE: If this batch is not eventually appended to a shard or
dropped, the data that it represents will have leaked. The caller is
responsible for turning this back into a Batch
using
WriteHandle::batch_from_transmittable_batch
.
Trait Implementations§
Auto Trait Implementations§
impl<K, V, T, D> !RefUnwindSafe for Batch<K, V, T, D>
impl<K, V, T, D> Send for Batch<K, V, T, D>
impl<K, V, T, D> Sync for Batch<K, V, T, D>
impl<K, V, T, D> Unpin for Batch<K, V, T, D>where
T: Unpin,
impl<K, V, T, D> !UnwindSafe for Batch<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
.