pub struct PersistWriteWorker<T: Timestamp + Lattice + Codec64 + TimestampManipulation> {
tx: UnboundedSender<(Span, PersistWriteWorkerCmd<T>)>,
}
Fields§
§tx: UnboundedSender<(Span, PersistWriteWorkerCmd<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.
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 moresource§impl<T: Debug + Timestamp + Lattice + Codec64 + TimestampManipulation> Debug for PersistWriteWorker<T>
impl<T: Debug + Timestamp + Lattice + Codec64 + TimestampManipulation> Debug for PersistWriteWorker<T>
Auto 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> 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
.