pub struct ClosedTimestampTracker { /* private fields */ }Expand description
Tracks the most recent apply instant per Raft group.
Implementations§
Source§impl ClosedTimestampTracker
impl ClosedTimestampTracker
pub fn new() -> Self
Sourcepub fn mark_applied(&self, group_id: u64)
pub fn mark_applied(&self, group_id: u64)
Record that group_id just applied one or more entries.
Called by the raft-loop applier after each apply batch.
Sourcepub fn mark_applied_at(&self, group_id: u64, at: Instant)
pub fn mark_applied_at(&self, group_id: u64, at: Instant)
Record that group_id just applied, using a caller-supplied
instant. Exposed for deterministic testing with paused time.
Sourcepub fn is_fresh_enough(&self, group_id: u64, max_staleness: Duration) -> bool
pub fn is_fresh_enough(&self, group_id: u64, max_staleness: Duration) -> bool
Check whether this node’s replica of group_id has applied
recently enough that a read with max_staleness can be
served locally.
Returns false if the group has never applied on this node
(no closed timestamp recorded).
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ClosedTimestampTracker
impl RefUnwindSafe for ClosedTimestampTracker
impl Send for ClosedTimestampTracker
impl Sync for ClosedTimestampTracker
impl Unpin for ClosedTimestampTracker
impl UnsafeUnpin for ClosedTimestampTracker
impl UnwindSafe for ClosedTimestampTracker
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> 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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.