Enum lsmlite_rs::LsmMode

source ·
#[repr(C)]
pub enum LsmMode { LsmNoBackgroundThreads = 0, LsmBackgroundMerger = 1, LsmBackgroundCheckpointer = 2, }
Expand description

These are the different kinds of execution modes that the engine can work on. The default mode is LsmNoBackgroundThreads - in which no background thread is scheduled to perform any task. All file operations are performed by the thread that is currently writing by the database.

The other available modes are LsmBackgroundMerger in which a background thread is scheduled to merge database segments towards producing larger segments. This background thread is also in charge of checkpointing the database file - thus making data truly persistent on stable storage - and flushing in-memory data into the database file.

In mode LsmBackgroundMerger, the additional background thread only checkpoints the database file. In this mode, merge operations are performed by the thread that also writes data to the database.

In any case, file operations (like merging and checkpointing) cannot be scheduled, these operations are triggered depending on the current state of the database.

Variants§

§

LsmNoBackgroundThreads = 0

Default mode. No additional background thread is scheduled.

§

LsmBackgroundMerger = 1

An additional background thread is scheduled to merge segments and to checkpoint the database file (update file headers and sync the contents of the database file to disk). This thread is also in charge of flushing in-memory data to the database file.

§

LsmBackgroundCheckpointer = 2

An additional background thread is scheduled to checkpoint the database file. Merge operations are not performed by this thread, but by the thread that also writes data to the database.

Trait Implementations§

source§

impl Clone for LsmMode

source§

fn clone(&self) -> LsmMode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LsmMode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for LsmMode

source§

fn default() -> LsmMode

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

impl<'de> Deserialize<'de> for LsmMode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for LsmMode

source§

fn eq(&self, other: &LsmMode) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for LsmMode

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<i32> for LsmMode

§

type Error = LsmErrorCode

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

fn try_from(value: i32) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for LsmMode

source§

impl Eq for LsmMode

source§

impl StructuralEq for LsmMode

source§

impl StructuralPartialEq for LsmMode

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,