pub struct PersistWriteWorker<T: Timestamp + Lattice + Codec64 + TimestampManipulation> {
inner: Arc<PersistWriteWorkerInner<T>>,
}
Fields§
§inner: Arc<PersistWriteWorkerInner<T>>
Implementations§
source§impl<T: Timestamp + Lattice + Codec64 + TimestampManipulation> PersistWriteWorker<T>
impl<T: Timestamp + Lattice + Codec64 + TimestampManipulation> PersistWriteWorker<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
id
is not currently associated with any write handle.
pub(crate) fn append( &self, updates: Vec<(GlobalId, Vec<Update<T>>, T)> ) -> Receiver<Result<(), StorageError>>
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
TimelessUpdate
to 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: PersistWriteWorkerCmd<T>)
Trait Implementations§
source§impl<T: Clone + Timestamp + Lattice + Codec64 + TimestampManipulation> Clone for PersistWriteWorker<T>
impl<T: Clone + Timestamp + Lattice + Codec64 + TimestampManipulation> Clone for PersistWriteWorker<T>
source§fn clone(&self) -> PersistWriteWorker<T>
fn clone(&self) -> PersistWriteWorker<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 PersistWriteWorker<T>
impl<T> Send for PersistWriteWorker<T>
impl<T> Sync for PersistWriteWorker<T>
impl<T> Unpin for PersistWriteWorker<T>
impl<T> !UnwindSafe for PersistWriteWorker<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::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
.