pub struct CheckpointInfo {
pub sst_files: usize,
pub blob_files: usize,
pub total_bytes: u64,
pub version_id: u64,
pub seqno: SeqNo,
}Expand description
Summary of a checkpoint produced by
AbstractTree::create_checkpoint.
All byte counts are logical file sizes — hard links share the underlying inode storage, so a checkpoint’s marginal disk usage is typically zero until the original files are compacted away.
Fields§
§sst_files: usizeNumber of SST files captured.
blob_files: usizeNumber of blob (value-log) files captured. Always 0 for a
standard Tree.
total_bytes: u64Sum of the logical file sizes of every captured SST + blob.
version_id: u64The version ID embedded in the checkpoint’s current pointer.
seqno: SeqNoLower-bound visible-seqno watermark for the snapshot.
Captured from the tree’s visible_seqno generator BEFORE
AbstractTree::current_version. Following the standard
“lowest-excluded” watermark convention, info.seqno = N means
every record with seqno < N was committed at sample time and
is therefore guaranteed to be present in the snapshot. Records
with seqno == N may or may not be included (writers can hold
a record in the memtable for an instant before publishing the
next watermark); records with seqno > N may also be present
(writers can advance the counter between sample and version
snapshot, and those keys still land in the captured memtable).
PITR consumers MUST use seqno < info.seqno as the inclusion
gate. Using <= (treating this as a max-included ceiling)
could move a recovery cutoff past data still needed from WAL
or replication; the field is a strict lower-exclusive watermark,
not a max-included ceiling.
Trait Implementations§
Source§impl Clone for CheckpointInfo
impl Clone for CheckpointInfo
Source§fn clone(&self) -> CheckpointInfo
fn clone(&self) -> CheckpointInfo
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 CheckpointInfo
Auto Trait Implementations§
impl Freeze for CheckpointInfo
impl RefUnwindSafe for CheckpointInfo
impl Send for CheckpointInfo
impl Sync for CheckpointInfo
impl Unpin for CheckpointInfo
impl UnsafeUnpin for CheckpointInfo
impl UnwindSafe for CheckpointInfo
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<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