pub enum CheckpointState {
Show 22 variants
PrepareCheckpoint,
AcquireLock,
BuildLocalSchemaView,
CollectTableRows,
CollectIndexRows,
BeginPagerTxn,
WriteRow {
write_set_index: usize,
requires_seek: bool,
},
WriteRowStateMachine {
write_set_index: usize,
},
DeleteRowStateMachine {
write_set_index: usize,
},
WriteIndexRow {
index_write_set_index: usize,
requires_seek: bool,
},
WriteIndexRowStateMachine {
index_write_set_index: usize,
},
DeleteIndexRowStateMachine {
index_write_set_index: usize,
},
CompactSequences,
CommitPagerTxn,
CheckpointWal,
SyncDbFile,
TruncateLogicalLog,
FsyncLogicalLog,
TruncateWal,
GcTableRows {
next_index: usize,
lwm: u64,
},
GcIndexRows {
next_index: usize,
lwm: u64,
},
Finalize,
}Variants§
PrepareCheckpoint
AcquireLock
BuildLocalSchemaView
CollectTableRows
CollectIndexRows
BeginPagerTxn
WriteRow
WriteRowStateMachine
DeleteRowStateMachine
WriteIndexRow
WriteIndexRowStateMachine
DeleteIndexRowStateMachine
CompactSequences
Compact each non-CYCLE sequence backing table down to a single
watermark row. CYCLE seqs are skipped — they manage wrap
correctness via inline compaction in the nextval bytecode and
already stay at one row in steady state. Non-CYCLE seqs grow
monotonically (one row per nextval) since inline compaction
was removed from the hot path to eliminate shared-row WW
conflicts; checkpoint reclaims the historical rows here, via
SeqCompactDriver which drives BTreeCursor ops with normal
IOResult propagation (no io.block / wait_for_completion).
CommitPagerTxn
CheckpointWal
SyncDbFile
Fsync the database file after checkpoint, before truncating WAL. This ensures durability: if we crash after WAL truncation but before DB fsync, the data would be lost.
TruncateLogicalLog
FsyncLogicalLog
TruncateWal
Truncate the WAL file after DB file and logical-log cleanup are safely durable.
GcTableRows
GcIndexRows
Finalize
Trait Implementations§
Source§impl Clone for CheckpointState
impl Clone for CheckpointState
Source§fn clone(&self) -> CheckpointState
fn clone(&self) -> CheckpointState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CheckpointState
Source§impl Debug for CheckpointState
impl Debug for CheckpointState
impl Eq for CheckpointState
Source§impl PartialEq for CheckpointState
impl PartialEq for CheckpointState
impl StructuralPartialEq for CheckpointState
Auto Trait Implementations§
impl Freeze for CheckpointState
impl RefUnwindSafe for CheckpointState
impl Send for CheckpointState
impl Sync for CheckpointState
impl Unpin for CheckpointState
impl UnsafeUnpin for CheckpointState
impl UnwindSafe for CheckpointState
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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