Struct mz_persist_client::read::SnapshotIter
source · [−]pub struct SnapshotIter<K, V, T, D> where
T: Timestamp + Lattice + Codec64,
K: Debug + Codec,
V: Debug + Codec,
D: Semigroup + Codec64 + Send + Sync, {
handle: ReadHandle<K, V, T, D>,
as_of: Antichain<T>,
batches: Vec<(PartialBlobKey, Description<T>)>,
_phantom: PhantomData<(K, V, T, D)>,
}
Expand description
An iterator over one split of a “snapshot” (the contents of a shard as of some frontier).
See ReadHandle::snapshot for details.
Fields
handle: ReadHandle<K, V, T, D>
as_of: Antichain<T>
batches: Vec<(PartialBlobKey, Description<T>)>
_phantom: PhantomData<(K, V, T, D)>
Implementations
sourceimpl<K, V, T, D> SnapshotIter<K, V, T, D> where
K: Debug + Codec,
V: Debug + Codec,
T: Timestamp + Lattice + Codec64,
D: Semigroup + Codec64 + Send + Sync,
impl<K, V, T, D> SnapshotIter<K, V, T, D> where
K: Debug + Codec,
V: Debug + Codec,
T: Timestamp + Lattice + Codec64,
D: Semigroup + Codec64 + Send + Sync,
fn new(handle: ReadHandle<K, V, T, D>, split: SnapshotSplit<T>) -> Self
sourcepub fn as_of(&self) -> &Antichain<T>
pub fn as_of(&self) -> &Antichain<T>
The frontier at which we’re outputting the contents of the shard.
sourcepub async fn next(
&mut self
) -> Option<Vec<((Result<K, String>, Result<V, String>), T, D)>>
pub async fn next(
&mut self
) -> Option<Vec<((Result<K, String>, Result<V, String>), T, D)>>
Attempt to pull out the next values of this iterator.
All times emitted will have been advanced by the Self::as_of frontier.
The returned updates are not consolidated. In the presence of compaction, consolidation can take an unbounded amount of memory so it’s not safe for persist to consolidate in the general case. Persist users that know they are dealing with a small amount of data are free to consolidate this themselves. See differential_dataflow::consolidation::consolidate_updates.
An None value is returned if this iterator is exhausted.
sourcepub async fn expire(self)
pub async fn expire(self)
Politely expires this iterator, releasing its lease.
There is a best-effort impl in Drop to expire a iterator that wasn’t explictly expired with this method. When possible, explicit expiry is still preferred because the Drop one is best effort and is dependant on a tokio Handle being available in the TLC at the time of drop (which is a bit subtle). Also, explicit expiry allows for control over when it happens.
Trait Implementations
Auto Trait Implementations
impl<K, V, T, D> !RefUnwindSafe for SnapshotIter<K, V, T, D>
impl<K, V, T, D> Send for SnapshotIter<K, V, T, D> where
K: Send,
V: Send,
impl<K, V, T, D> Sync for SnapshotIter<K, V, T, D> where
K: Sync,
V: Sync,
impl<K, V, T, D> Unpin for SnapshotIter<K, V, T, D> where
D: Unpin,
K: Unpin,
T: Unpin,
V: Unpin,
impl<K, V, T, D> !UnwindSafe for SnapshotIter<K, V, T, D>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T
in a tonic::Request
sourceimpl<P, R> ProtoType<R> for P where
R: RustType<P>,
impl<P, R> ProtoType<R> for P where
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See RustType::from_proto
.
sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See RustType::into_proto
.
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more