pub struct PersistMonotonicWriteWorker<T: Timestamp + Lattice + Codec64 + TimestampManipulation> {
inner: Arc<PersistMonotonicWriteWorkerInner<T>>,
}Fields§
§inner: Arc<PersistMonotonicWriteWorkerInner<T>>Implementations§
source§impl<T: Timestamp + Lattice + Codec64 + TimestampManipulation> PersistMonotonicWriteWorker<T>
impl<T: Timestamp + Lattice + Codec64 + TimestampManipulation> PersistMonotonicWriteWorker<T>
pub(crate) fn new( frontier_responses: UnboundedSender<StorageResponse<T>> ) -> Self
pub(crate) fn register( &self, id: GlobalId, write_handle: WriteHandle<SourceData, (), T, Diff> )
sourcepub(crate) fn update(
&self,
id: GlobalId,
write_handle: WriteHandle<SourceData, (), T, Diff>
)
pub(crate) fn update( &self, id: GlobalId, write_handle: WriteHandle<SourceData, (), T, Diff> )
Update the existing write handle associated with id to write_handle.
Note that this should only be called when updating a write handle; to
initially associate an id to a write handle, use Self::register.
Panics
- If
idis not currently associated with any write handle.
sourcepub(crate) fn monotonic_append(
&self,
updates: Vec<(GlobalId, Vec<TimestamplessUpdate>, T)>
) -> Receiver<Result<(), StorageError>>
pub(crate) fn monotonic_append( &self, updates: Vec<(GlobalId, Vec<TimestamplessUpdate>, T)> ) -> Receiver<Result<(), StorageError>>
Appends values to collections associated with GlobalId, but lets
the persist worker chose timestamps guaranteed to be monotonic and
that the time will be at least T.
This lets the writer influence how far forward the timestamp will be advanced, while still guaranteeing that it will advance.
Note it is still possible for the append operation to fail in the face of contention from other writers.
Panics
-
If appending non-empty
TimelessUpdateto closed collections (i.e. those with empty uppers), whose uppers cannot be monotonically increased.Collections with empty uppers can continue receiving empty updates, i.e. those used soley to advance collections’ uppers.
sourcepub(crate) fn drop_handle(&self, id: GlobalId)
pub(crate) fn drop_handle(&self, id: GlobalId)
Drops the handle associated with id from this worker.
Note that this does not perform any other cleanup, such as finalizing the handle’s shard.
fn send(&self, cmd: PersistMonotonicWriteCmd<T>)
Trait Implementations§
source§impl<T: Clone + Timestamp + Lattice + Codec64 + TimestampManipulation> Clone for PersistMonotonicWriteWorker<T>
impl<T: Clone + Timestamp + Lattice + Codec64 + TimestampManipulation> Clone for PersistMonotonicWriteWorker<T>
source§fn clone(&self) -> PersistMonotonicWriteWorker<T>
fn clone(&self) -> PersistMonotonicWriteWorker<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<T> !RefUnwindSafe for PersistMonotonicWriteWorker<T>
impl<T> Send for PersistMonotonicWriteWorker<T>
impl<T> Sync for PersistMonotonicWriteWorker<T>
impl<T> Unpin for PersistMonotonicWriteWorker<T>
impl<T> !UnwindSafe for PersistMonotonicWriteWorker<T>
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::Requestsource§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.