pub struct ScanStatus {
pub scan_complete: bool,
pub tip_seq: u64,
pub indexed_seq_min: u64,
pub indexed_seq_max: u64,
pub indexed_count: usize,
pub seq_index_ready: bool,
}Expand description
Replication readiness snapshot. scan_complete is the correctness gate: until
the cold-scan finishes rebuilding the seq index, an old cursor passed to
since() can return a PARTIAL page and look (wrongly) like “caught up”. A
correctness-critical consumer MUST wait for scan_complete == true before
trusting historical catch-up. indexed_seq_min/max report the currently
resolvable seq range; tip_seq is the log head.
Fields§
§scan_complete: boolCold-scan finished — historical seqs fully resolvable; catch-up is safe.
tip_seq: u64Head seq of the log (latest committed write).
indexed_seq_min: u64Lowest seq currently in the seq index (0 if empty).
indexed_seq_max: u64Highest seq currently in the seq index.
indexed_count: usizeNumber of seqs currently resolvable via the index.
seq_index_ready: boolTrue when the seq index actually covers the log — i.e. since() can
resolve historical seqs. DISTINCT from scan_complete: a warm boot is
“startup complete” in O(1) precisely because it SKIPS the scan, so
scan_complete is true while this is false and since() resolves
nothing. Replication consumers must gate on this field, not on
scan_complete; call rebuild_id_index()/repair() to populate it.
Trait Implementations§
Source§impl Clone for ScanStatus
impl Clone for ScanStatus
Source§fn clone(&self) -> ScanStatus
fn clone(&self) -> ScanStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScanStatus
impl Debug for ScanStatus
Source§impl Serialize for ScanStatus
impl Serialize for ScanStatus
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for ScanStatus
impl RefUnwindSafe for ScanStatus
impl Send for ScanStatus
impl Sync for ScanStatus
impl Unpin for ScanStatus
impl UnsafeUnpin for ScanStatus
impl UnwindSafe for ScanStatus
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
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> ⓘ
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 more