Skip to main content

Pvalues

Type Alias Pvalues 

Source
pub type Pvalues<C> = BTreeMap<Slot, (Ballot, C)>;
Expand description

The pvalues held for a set of slots: one per slot, the one carrying the highest ballot.

The book writes a set and unions into it, and this module first held one — a BTreeMap keyed by ⟨ballot, slot⟩, which made Invariant A4 the map’s own property. §4.1 is why it no longer does; see MultiPaxosSynod::accepted. A4 is unaffected, because it was never the acceptor’s to enforce: Invariant C1 — at most one commander per ⟨ballot, slot⟩ — is what gives it, and the leader is what holds C1. What the old key bought was a second, redundant enforcement at the acceptor; what it cost was a whole dimension of growth.

Aliased Type§

pub struct Pvalues<C> { /* private fields */ }