pub struct CheckpointManager { /* private fields */ }Expand description
Checkpoint manager
Implementations§
Source§impl CheckpointManager
impl CheckpointManager
Sourcepub fn new(
data_dir: &Path,
config: CheckpointConfig,
dirty_pages: Arc<DirtyPageTracker>,
active_txns: Arc<ActiveTransactionTracker>,
hlc: Arc<HybridLogicalClock>,
) -> Result<Self>
pub fn new( data_dir: &Path, config: CheckpointConfig, dirty_pages: Arc<DirtyPageTracker>, active_txns: Arc<ActiveTransactionTracker>, hlc: Arc<HybridLogicalClock>, ) -> Result<Self>
Create a new checkpoint manager
Sourcepub fn record_wal_write(&self, bytes: u64)
pub fn record_wal_write(&self, bytes: u64)
Record a WAL write for checkpoint tracking
Sourcepub fn should_checkpoint(&self) -> bool
pub fn should_checkpoint(&self) -> bool
Check if checkpoint is needed
Sourcepub fn checkpoint<F>(&self, flush_dirty_pages: F) -> Result<CheckpointData>
pub fn checkpoint<F>(&self, flush_dirty_pages: F) -> Result<CheckpointData>
Take a checkpoint
This is the main checkpoint operation:
- Write BEGIN_CHECKPOINT record
- Collect active transactions and dirty pages
- Flush all dirty pages to stable storage
- Write END_CHECKPOINT record with collected data
- Optionally truncate WAL
Sourcepub fn recovery_lsn(&self) -> Option<Lsn>
pub fn recovery_lsn(&self) -> Option<Lsn>
Get the LSN that is safe for recovery (oldest required LSN)
Sourcepub fn last_checkpoint(&self) -> Option<CheckpointData>
pub fn last_checkpoint(&self) -> Option<CheckpointData>
Get the last checkpoint
Sourcepub fn stats(&self) -> CheckpointStats
pub fn stats(&self) -> CheckpointStats
Get checkpoint statistics
Auto Trait Implementations§
impl !Freeze for CheckpointManager
impl !RefUnwindSafe for CheckpointManager
impl Send for CheckpointManager
impl Sync for CheckpointManager
impl Unpin for CheckpointManager
impl UnsafeUnpin for CheckpointManager
impl !UnwindSafe for CheckpointManager
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
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> 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 more