pub struct RangeAuthority {
pub range_id: u64,
pub min_term: u64,
pub min_ownership_epoch: u64,
}Expand description
Issue #991 — the range-authority watermark a replica or recovery target holds for a single range: the minimum term and ownership epoch it will accept for that range’s user-data changes.
The physical WAL stays the source of truth; this fence operates purely on
the derived metadata each ChangeRecord carries. A record stamped for
this range whose term or ownership epoch is behind the watermark is a write
from a stale (deposed) owner or a superseded timeline and must be rejected
before it is applied. Records for a different range, or records with no
range identity at all (legacy / non-range-replicated), are not this fence’s
concern and pass through untouched.
Fields§
§range_id: u64§min_term: u64§min_ownership_epoch: u64Implementations§
Source§impl RangeAuthority
impl RangeAuthority
Sourcepub fn admit(&self, record: &ChangeRecord) -> Result<(), RangeAdmitError>
pub fn admit(&self, record: &ChangeRecord) -> Result<(), RangeAdmitError>
Decide whether record may be applied to this range. Only records
explicitly stamped for self.range_id are gated; everything else is
admitted. Term is checked before epoch so a stale timeline is reported
as such even when its epoch also lags.
Trait Implementations§
Source§impl Clone for RangeAuthority
impl Clone for RangeAuthority
Source§fn clone(&self) -> RangeAuthority
fn clone(&self) -> RangeAuthority
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 RangeAuthority
Source§impl Debug for RangeAuthority
impl Debug for RangeAuthority
impl Eq for RangeAuthority
Source§impl PartialEq for RangeAuthority
impl PartialEq for RangeAuthority
Source§fn eq(&self, other: &RangeAuthority) -> bool
fn eq(&self, other: &RangeAuthority) -> bool
self and other values to be equal, and is used by ==.