pub struct RecoveryRecord {
pub generation: Generation,
pub previous_generation: Generation,
pub known_committed: Offset,
pub recovery_point: Offset,
pub discarded_range: Option<Range<Offset>>,
pub timestamp: Timestamp,
pub reason: RecoveryReason,
}Expand description
Records a recovery event with explicit tracking of any data loss.
Critical for compliance: auditors can see exactly what happened during recovery, including any mutations that were discarded.
Inspired by FoundationDB’s 9-phase recovery with explicit data loss tracking.
Fields§
§generation: GenerationNew generation after recovery.
previous_generation: GenerationPrevious generation before recovery.
known_committed: OffsetLast known committed offset before recovery.
recovery_point: OffsetOffset we recovered to.
discarded_range: Option<Range<Offset>>Range of discarded prepares (if any) - EXPLICIT LOSS TRACKING.
If Some, this range of offsets contained prepared but uncommitted
mutations that were discarded during recovery. This is the critical
compliance field: it explicitly documents any data loss.
timestamp: TimestampWhen recovery occurred.
reason: RecoveryReasonWhy recovery was triggered.
Implementations§
Source§impl RecoveryRecord
impl RecoveryRecord
Sourcepub fn new(
generation: Generation,
previous_generation: Generation,
known_committed: Offset,
recovery_point: Offset,
discarded_range: Option<Range<Offset>>,
timestamp: Timestamp,
reason: RecoveryReason,
) -> Self
pub fn new( generation: Generation, previous_generation: Generation, known_committed: Offset, recovery_point: Offset, discarded_range: Option<Range<Offset>>, timestamp: Timestamp, reason: RecoveryReason, ) -> Self
Creates a new recovery record.
§Arguments
generation- The new generation after recoveryprevious_generation- The generation before recoveryknown_committed- Last known committed offsetrecovery_point- The offset we recovered todiscarded_range- Range of discarded uncommitted prepares, if anytimestamp- When recovery occurredreason- Why recovery was triggered
§Preconditions
generationmust be greater thanprevious_generationrecovery_pointmust be <=known_committed
Sourcepub fn had_data_loss(&self) -> bool
pub fn had_data_loss(&self) -> bool
Returns true if any data was lost during this recovery.
Sourcepub fn discarded_count(&self) -> u64
pub fn discarded_count(&self) -> u64
Returns the number of discarded records, if any.
Trait Implementations§
Source§impl Clone for RecoveryRecord
impl Clone for RecoveryRecord
Source§fn clone(&self) -> RecoveryRecord
fn clone(&self) -> RecoveryRecord
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more