Struct LocalOptions
pub struct LocalOptions {
pub flush: FlushMethod,
pub direct_io: bool,
pub preallocate: Preallocate,
pub segment_bytes: u64,
pub flusher_spin: Duration,
pub emulated_flush: Duration,
pub prepare_bytes_per_sec: u64,
}Fields§
§flush: FlushMethod§direct_io: boolLinux only (default there): open segments with O_DIRECT and write
aligned 4 KiB blocks. The last partial block is kept in memory and
written again, with the same bytes, by the next write. If the
filesystem refuses O_DIRECT with EINVAL, at an open or at a write
(ramfs, tmpfs before Linux 6.6, devices whose blocks are larger than
4 KiB), that log directory falls back to buffered writes, and
FlushMethod::Dsync to fdatasync, for the life of the process;
one line on stderr says so. Not used with FlushMethod::IoUring or
by a replica’s [BatchWriter]. The shared log (crate::wal) applies
the same option with its own probe.
preallocate: Preallocate§segment_bytes: u64§flusher_spin: DurationHow long the flusher thread spins for new work before sleeping. Spinning trades a busy core for lower handoff latency under moderate load.
emulated_flush: DurationAdds this much to every flush (benchmarks that emulate slower disks).
prepare_bytes_per_sec: u64Pace of background zero-filling of successor segments, so preparing one does not take the device away from the logs. Ignored once a log is waiting for the segment.
Trait Implementations§
§impl Clone for LocalOptions
impl Clone for LocalOptions
§fn clone(&self) -> LocalOptions
fn clone(&self) -> LocalOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more