pub enum IgnoreReason {
NotLeader,
EpochMismatch {
expected: Epoch,
current: Epoch,
},
NotAdvanced {
persisted: u64,
committed: u64,
},
}Expand description
Why a CommitOutcome::Ignored commit left the durable bound unchanged.
All three are benign and expected under normal failover: the epoch-fencing
design of try_commit_window_extension deliberately drops late commits from
a superseded epoch rather than erroring, and the monotonic bound rejects a
value that does not advance. They are kept apart so a caller can distinguish
epoch churn (NotLeader / EpochMismatch)
from persist reordering (NotAdvanced).
Variants§
NotLeader
The allocator is no longer a leader, so the commit has no window to raise.
EpochMismatch
The allocator leads a different epoch than the commit targeted; the commit is a late persist from a superseded epoch, fenced out.
NotAdvanced
The allocator still leads the targeted epoch, but the persisted value did not exceed the current bound, so the monotonic bound rejects it.
Trait Implementations§
Source§impl Clone for IgnoreReason
impl Clone for IgnoreReason
Source§fn clone(&self) -> IgnoreReason
fn clone(&self) -> IgnoreReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for IgnoreReason
Source§impl Debug for IgnoreReason
impl Debug for IgnoreReason
impl Eq for IgnoreReason
Source§impl PartialEq for IgnoreReason
impl PartialEq for IgnoreReason
Source§fn eq(&self, other: &IgnoreReason) -> bool
fn eq(&self, other: &IgnoreReason) -> bool
self and other values to be equal, and is used by ==.