pub struct WalWriter { /* private fields */ }Expand description
Write-ahead log writer.
Thread-safe WAL writer with durable append operations.
§Durability
When sync_on_write is enabled, each write is followed by an fsync
to ensure the data is persisted to disk before returning.
§Example
ⓘ
use rag_plusplus_core::wal::{WalWriter, WalConfig};
let config = WalConfig::new("./wal");
let mut writer = WalWriter::new(config)?;
writer.log_insert(&record)?;
writer.log_update_stats(&id, 0.9)?;Implementations§
Source§impl WalWriter
impl WalWriter
Sourcepub fn new(config: WalConfig) -> Result<Self>
pub fn new(config: WalConfig) -> Result<Self>
Create a new WAL writer.
Creates the WAL directory if it doesn’t exist.
§Errors
Returns error if directory creation or file opening fails.
Sourcepub fn log_insert(&self, record: &MemoryRecord) -> Result<u64>
pub fn log_insert(&self, record: &MemoryRecord) -> Result<u64>
Sourcepub fn log_update_stats(
&self,
record_id: &RecordId,
outcome: f64,
) -> Result<u64>
pub fn log_update_stats( &self, record_id: &RecordId, outcome: f64, ) -> Result<u64>
Log a stats update operation.
Sourcepub fn log_delete(&self, record_id: &RecordId) -> Result<u64>
pub fn log_delete(&self, record_id: &RecordId) -> Result<u64>
Log a delete operation.
Sourcepub fn log_checkpoint(&self) -> Result<u64>
pub fn log_checkpoint(&self) -> Result<u64>
Log a checkpoint marker.
Sourcepub fn list_files(&self) -> Result<Vec<PathBuf>>
pub fn list_files(&self) -> Result<Vec<PathBuf>>
Get list of WAL files.
Sourcepub fn truncate_before(&self, checkpoint_seq: u64) -> Result<()>
pub fn truncate_before(&self, checkpoint_seq: u64) -> Result<()>
Truncate WAL files up to (but not including) a checkpoint.
This removes entries that have been successfully checkpointed.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for WalWriter
impl !RefUnwindSafe for WalWriter
impl Send for WalWriter
impl Sync for WalWriter
impl Unpin for WalWriter
impl UnwindSafe for WalWriter
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.