Skip to main content

EventualLeaderDetectorOverPerfectDetection

Type Alias EventualLeaderDetectorOverPerfectDetection 

Source
pub type EventualLeaderDetectorOverPerfectDetection = EventualLeaderDetector<PerfectFailureDetector>;
Expand description

Ω over the perfect failure detector — what this module was before ◇P existed.

Strictly stronger than Algorithm 2.8 asks for, and therefore correct: a detector that is right from the start satisfies “eventually right”. What it costs is that a suspicion is permanent, so leadership only ever walks downward through the membership and a process that crashed and recovered can never lead again. In the crash-stop model nothing recovers and that costs nothing; in the fail-recovery model it is the difference between a stack that can regain a leader and one that cannot.

Use it where the delivery bound really is known and permanence is wanted. Otherwise use EventualLeaderDetector, which defaults to the detector its algorithm names.

Aliased Type§

pub struct EventualLeaderDetectorOverPerfectDetection { /* private fields */ }

Implementations§

Source§

impl EventualLeaderDetectorOverPerfectDetection

Source

pub fn over_perfect_detection( me: NodeId, peers: impl IntoIterator<Item = NodeId>, heartbeat: Duration, detect_after: Duration, ) -> Self

Ω over a perfect failure detector beating every heartbeat and accusing after detect_after of silence.