Skip to main content

SyncMode

Enum SyncMode 

Source
pub enum SyncMode {
    PerCommit,
    Group {
        interval_ms: u32,
    },
    None,
}
Expand description

Durability mode for committed transactions.

The current release has at most one committer at a time. The enum still names the durability strategies we want long term, but no mode requires a background thread today. SyncMode::PerCommit is the default.

Variants§

§

PerCommit

fsync the active segment before the committing thread releases the store write lock. The strongest durability guarantee the WAL offers; every observed query result is fully durable on native filesystems. On wasm32-unknown-unknown, fsync is intentionally a no-op.

§

Group

Write commit bytes to the OS immediately, but defer fsync until an explicit force_fsync, checkpoint, Database::sync, or clean WAL drop. The interval is retained as part of the public configuration so a later release can add a background/group flusher without changing callers, but it is not scheduled in the single-threaded release.

A future background fsync failure will poison the WAL through the existing Wal::bg_failure surface. In this release, Group mode is cooperative, so that field remains None unless another caller poisons the WAL.

Fields

§interval_ms: u32
§

None

Append but never fsync from the WAL; rely on whatever the OS happens to flush. Intended for CDC-only deployments where the WAL is consumed by an external reader and durability is provided elsewhere.

Trait Implementations§

Source§

impl Clone for SyncMode

Source§

fn clone(&self) -> SyncMode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SyncMode

Source§

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

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

impl Default for SyncMode

Source§

fn default() -> SyncMode

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

impl PartialEq for SyncMode

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SyncMode

Source§

impl Eq for SyncMode

Source§

impl StructuralPartialEq for SyncMode

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.