Skip to main content

CompactionCancellationToken

Struct CompactionCancellationToken 

Source
pub struct CompactionCancellationToken { /* private fields */ }
Expand description

A cancellation flag that aborts an in progress CompactFiles job.

Create one, hand it to CompactionOptions::set_canceled, keep a clone of the Arc somewhere else, and call cancel from that other thread to stop the compaction. Cancellation is one shot and best effort. The compaction iterator checks the flag as it walks the input, so the job stops at the next check rather than immediately, and upstream notes that cancellation can be delayed waiting on automatic compactions when exclusive_manual_compaction is set.

There is no C API to read the flag back, so this wrapper is write only and there is no way to un-cancel. Use a fresh token per compaction.

Implementations§

Source§

impl CompactionCancellationToken

Source

pub fn new() -> Self

Allocates a fresh token in the not cancelled state.

Source

pub fn cancel(&self)

Signals that the compaction using this token should stop.

Returns as soon as the flag is stored. The compaction winds down on its own thread and the CompactFiles call it belongs to then fails with ErrorKind::Incomplete and the message Result incomplete: Manual compaction paused.

Trait Implementations§

Source§

impl Default for CompactionCancellationToken

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for CompactionCancellationToken

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Send for CompactionCancellationToken

Source§

impl Sync for CompactionCancellationToken

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.