pub struct WalBuffer { /* private fields */ }Expand description
In-memory WAL buffer for replication. Primary appends records here; replicas consume from it.
Implementations§
Source§impl WalBuffer
impl WalBuffer
pub fn new(max_size: usize) -> Self
Sourcepub fn append(&self, lsn: u64, data: Vec<u8>)
pub fn append(&self, lsn: u64, data: Vec<u8>)
Append a WAL record. Called by the storage engine after each write.
Sourcepub fn read_since(
&self,
since_lsn: u64,
max_count: usize,
) -> Vec<(u64, Vec<u8>)>
pub fn read_since( &self, since_lsn: u64, max_count: usize, ) -> Vec<(u64, Vec<u8>)>
Read records since the given LSN (exclusive).
Sourcepub fn current_lsn(&self) -> u64
pub fn current_lsn(&self) -> u64
Current LSN.
pub fn set_current_lsn(&self, lsn: u64)
Sourcepub fn oldest_lsn(&self) -> Option<u64>
pub fn oldest_lsn(&self) -> Option<u64>
Oldest available LSN (for gap detection).
Auto Trait Implementations§
impl !Freeze for WalBuffer
impl RefUnwindSafe for WalBuffer
impl Send for WalBuffer
impl Sync for WalBuffer
impl Unpin for WalBuffer
impl UnsafeUnpin for WalBuffer
impl UnwindSafe for WalBuffer
Blanket Implementations§
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<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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request