pub struct CompactionHandle<'db> { /* private fields */ }Expand description
Handle for an incremental online compaction.
Created by Database::start_compaction(). Each call to step()
briefly acquires a write transaction, relocates a batch of pages from the highest
file offsets to lower ones, and commits – allowing concurrent readers to proceed
between steps.
Use run() to loop until compaction is complete.
Implementations§
Source§impl CompactionHandle<'_>
impl CompactionHandle<'_>
Sourcepub fn step(&self) -> Result<CompactionProgress, CompactionError>
pub fn step(&self) -> Result<CompactionProgress, CompactionError>
Performs one compaction step: flushes pending frees, relocates a batch of pages, then reclaims the freed space.
Returns CompactionProgress indicating how many pages were moved and whether
compaction is complete.
Sourcepub fn run(&self) -> Result<u64, CompactionError>
pub fn run(&self) -> Result<u64, CompactionError>
Runs compaction to completion, returning the total number of steps performed.
Auto Trait Implementations§
impl<'db> Freeze for CompactionHandle<'db>
impl<'db> !RefUnwindSafe for CompactionHandle<'db>
impl<'db> Send for CompactionHandle<'db>
impl<'db> Sync for CompactionHandle<'db>
impl<'db> Unpin for CompactionHandle<'db>
impl<'db> UnsafeUnpin for CompactionHandle<'db>
impl<'db> !UnwindSafe for CompactionHandle<'db>
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