pub struct GlobalReadWatermark { /* private fields */ }Expand description
A safe snapshot point for a globally consistent cross-range read: a commit
watermark per (collection, range) that the read pins itself to.
This is the “explicit safe snapshot/watermark path” the issue requires before a cross-range read may claim to be consistent. A consistent read must find a watermark here for every range it touches; a missing entry means the snapshot does not cover that range and the read cannot be served consistently.
Implementations§
Source§impl GlobalReadWatermark
impl GlobalReadWatermark
pub fn new() -> GlobalReadWatermark
Sourcepub fn with(
self,
collection: CollectionId,
range_id: RangeId,
watermark: CommitWatermark,
) -> GlobalReadWatermark
pub fn with( self, collection: CollectionId, range_id: RangeId, watermark: CommitWatermark, ) -> GlobalReadWatermark
Pin range’s safe read point to watermark (builder form).
Sourcepub fn insert(
&mut self,
collection: CollectionId,
range_id: RangeId,
watermark: CommitWatermark,
)
pub fn insert( &mut self, collection: CollectionId, range_id: RangeId, watermark: CommitWatermark, )
Record range’s safe read point.
Sourcepub fn covers(
&self,
collection: &CollectionId,
range_id: RangeId,
) -> Option<CommitWatermark>
pub fn covers( &self, collection: &CollectionId, range_id: RangeId, ) -> Option<CommitWatermark>
The pinned watermark for a range, or None if the snapshot does not cover
it.
Trait Implementations§
Source§impl Clone for GlobalReadWatermark
impl Clone for GlobalReadWatermark
Source§fn clone(&self) -> GlobalReadWatermark
fn clone(&self) -> GlobalReadWatermark
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GlobalReadWatermark
impl Debug for GlobalReadWatermark
Source§impl Default for GlobalReadWatermark
impl Default for GlobalReadWatermark
Source§fn default() -> GlobalReadWatermark
fn default() -> GlobalReadWatermark
Returns the “default value” for a type. Read more
impl Eq for GlobalReadWatermark
Source§impl PartialEq for GlobalReadWatermark
impl PartialEq for GlobalReadWatermark
Source§fn eq(&self, other: &GlobalReadWatermark) -> bool
fn eq(&self, other: &GlobalReadWatermark) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for GlobalReadWatermark
Auto Trait Implementations§
impl Freeze for GlobalReadWatermark
impl RefUnwindSafe for GlobalReadWatermark
impl Send for GlobalReadWatermark
impl Sync for GlobalReadWatermark
impl Unpin for GlobalReadWatermark
impl UnsafeUnpin for GlobalReadWatermark
impl UnwindSafe for GlobalReadWatermark
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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>
Wrap the input message
T in a tonic::Request