AppendOnlyFile

文件存储

/// Wrapper for a file that can be read at any position (random read) but for
/// which writes are append only. Reads are backed by a memory map (mmap(2)),
/// relying on the operating system for fast access and caching. The memory
/// map is reallocated to expand it when new writes are flushed.
///
/// Despite being append-only, the file can still be pruned and truncated. The
/// former simply happens by rewriting it, ignoring some of the data. The
/// latter by truncating the underlying file and re-creating the mmap.
pub struct AppendOnlyFile {
    path: String,
    file: File,
    mmap: Option<memmap::Mmap>,
    buffer_start: usize,
    buffer: Vec<u8>,
    buffer_start_bak: usize,
}

results matching ""

    No results matching ""