Enum paxakos::node::Participation
source · pub enum Participation<R> {
Active,
PartiallyActive(R),
Passive,
}
Expand description
Reflects a Node
’s possible modes of participation.
When a node shuts down, it returns a final snapshot. This snapshot can be used to restart the node. When restarted in such a fashion, the node is aware of any and all commitments it made previously.
Conversely, when a node crashes and restarts off some other snapshot, it is unaware of any commitments it made prior to crashing. To prevent the node from inadvertantly breaking any such commitments and introducing inconsistencies, it is started in passive mode.
While in passive mode, a node does not vote and does not accept any entries. It remains in this mode until all rounds it may have participated in before have been settled.
Variants
Active
The node will actively participate in any round.
PartiallyActive(R)
The node will only participate actively in the given or later rounds.
When the given round becomes the next round, i.e. an entry was applied
for its preceding round, the node will transition into Active
participation.
Passive
The node is fully passive and won’t participate in any round.
The node will observe communications and determine a lower bound for the
rounds in which it can participate without causing inconsistencies. Once
the lower bound is found, an Event::Activate
event will be emitted
and the node transitions into PartiallyActive
participation.
Trait Implementations
sourceimpl<R: Clone> Clone for Participation<R>
impl<R: Clone> Clone for Participation<R>
sourcefn clone(&self) -> Participation<R>
fn clone(&self) -> Participation<R>
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more