pub struct VlsnIndexView { /* private fields */ }Expand description
A SyncupView backed by a live VlsnIndex (VLSN → LSN) plus the
index’s range (getFirst/getLastSync/getLastTxnEnd).
The per-VLSN fingerprint is the LSN itself: two nodes hold the “same
record” at a VLSN iff they assigned it the same LSN. This is the in-memory
equivalent of JE OutputWireRecord.match for the syncup driver that works
from the VLSN index without re-reading raw log bytes (used by the live
become_replica path and the multi-node test harness, which track
replication at the VLSN-index granularity). The SyncupLogView above is
the full re-read used when raw per-record checksums are required.
A VLSN is treated as a sync point iff it is <= lastSync and held in the
index — matching JE, where every sync point is a txn end and lastSync
bounds the highest matchpoint candidate.
Implementations§
Source§impl VlsnIndexView
impl VlsnIndexView
Sourcepub fn from_index(index: &Arc<VlsnIndex>) -> Self
pub fn from_index(index: &Arc<VlsnIndex>) -> Self
Build a view over index.
Trait Implementations§
Source§impl SyncupView for VlsnIndexView
impl SyncupView for VlsnIndexView
Source§fn last_sync(&self) -> Vlsn
fn last_sync(&self) -> Vlsn
VLSNRange.getLastSync) — the first
matchpoint candidate.Source§fn last_txn_end(&self) -> Vlsn
fn last_txn_end(&self) -> Vlsn
VLSNRange.getLastTxnEnd) — the rollback
safety boundary.Source§fn first_vlsn(&self) -> Vlsn
fn first_vlsn(&self) -> Vlsn
VLSNRange.getFirst). The search may
not go below this.Auto Trait Implementations§
impl !RefUnwindSafe for VlsnIndexView
impl !UnwindSafe for VlsnIndexView
impl Freeze for VlsnIndexView
impl Send for VlsnIndexView
impl Sync for VlsnIndexView
impl Unpin for VlsnIndexView
impl UnsafeUnpin for VlsnIndexView
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
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>
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>
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 more