Struct Options

Source
pub struct Options {
    pub open_mode: OpenMode,
    pub keys_per_node: usize,
    pub page_cache_size: usize,
    pub file_locking: bool,
    pub file_sync: SyncOption,
    pub automatic_flush: bool,
    pub automatic_flush_threshold: usize,
    pub compression_level: CompressionLevel,
}
Expand description

Database configuration options.

Fields§

§open_mode: OpenMode

Option when opening a database. Default: LoadOrCreate.

§keys_per_node: usize

Maximum number of keys-value pairs per node. Default: 1024.

This value specifies the threshold when a tree node is considered full. When a node is full, it is split into two and the tree is rebalanced.

A page contains a single node and a page is stored on disk as one file.

This option shouldn’t be changed without making performance and resource usage benchmarks.

§page_cache_size: usize

Maximum number of pages held in memory cache. Default: 64.

The cache is used to store frequently accessed pages for reducing disk operations.

If memory usage is too high, consider decreasing this value first.

§file_locking: bool

Whether to use file locking to prevent corruption by multiple processes. Default: true.

§file_sync: SyncOption

Level of file synchronization to increase durability on disk file systems. Default: Data

§automatic_flush: bool

Whether to flush the data to the file system periodically when a database operation is performed. Default: true.

When true, data is flushed when the database is dropped or when enough modifications accumulate. Setting this option to false allows you to manually persist changes at more optimal points.

There is no background maintenance thread that does automatic flushing; automatic flushing occurs when a database modifying function, such as put() or remove(), is called.

§automatic_flush_threshold: usize

Number of modifications required for automatic flush to be considered. Default: 2048

When the threshold is reached after 300 seconds, or the threshold × 2 is reached after 60 seconds, a flush is scheduled to be performed on the next modification.

§compression_level: CompressionLevel

Compression level for each page. Default: Low.

Trait Implementations§

Source§

impl Clone for Options

Source§

fn clone(&self) -> Options

Returns a duplicate 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 Options

Source§

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

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

impl Default for Options

Source§

fn default() -> Self

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

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

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>,

Source§

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>,

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.