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
impl EventualLeaderDetectorOverPerfectDetection
Sourcepub fn over_perfect_detection(
me: NodeId,
peers: impl IntoIterator<Item = NodeId>,
heartbeat: Duration,
detect_after: Duration,
) -> Self
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.