pub struct RecoveryRound {
pub id: RecoveryRoundId,
pub leader_proof: LeaderProof,
pub assignment_fence: CheckpointAssignmentFence,
pub evidence_participants: Vec<CheckpointParticipant>,
pub faults: Vec<RecoveryFault>,
/* private fields */
}Expand description
Frozen recovery round, assignment certificate, and durable driver term.
Fields§
§id: RecoveryRoundIdUnique round identity.
leader_proof: LeaderProofExact durable leader term that created and may advance this round.
assignment_fence: CheckpointAssignmentFenceExact owner-complete assignment cut from which the quorum was frozen.
evidence_participants: Vec<CheckpointParticipant>Exact non-owner processes whose fault evidence must be inventoried before recovery starts.
These participants stop and report Prepared checkpoint evidence, but do not join the assignment-owner restore or release quorum.
faults: Vec<RecoveryFault>Canonical nonzero fault reports covered by this round’s terminal Release.
Implementations§
Source§impl RecoveryRound
impl RecoveryRound
Sourcepub fn new(
generation: u64,
leader_proof: LeaderProof,
assignment_fence: CheckpointAssignmentFence,
evidence_participants: Vec<CheckpointParticipant>,
fault_revision: u64,
faults: Vec<RecoveryFault>,
) -> Result<Self, String>
pub fn new( generation: u64, leader_proof: LeaderProof, assignment_fence: CheckpointAssignmentFence, evidence_participants: Vec<CheckpointParticipant>, fault_revision: u64, faults: Vec<RecoveryFault>, ) -> Result<Self, String>
Construct a fresh uniquely identified recovery round.
§Errors
Returns an error when the generation, leader proof, or assignment certificate is invalid.
Sourcepub fn contains_owner(&self, node: NodeId) -> bool
pub fn contains_owner(&self, node: NodeId) -> bool
Whether node belongs to the immutable assignment-owner quorum.
Sourcepub fn contains_stopped_participant(&self, node: NodeId) -> bool
pub fn contains_stopped_participant(&self, node: NodeId) -> bool
Whether node must stop and report evidence for this round.
Sourcepub fn stopped_participants(&self) -> Vec<NodeId>
pub fn stopped_participants(&self) -> Vec<NodeId>
Frozen stopped roster as sorted runtime node identifiers.
Sourcepub fn fault_sequence(&self, node: NodeId) -> Option<u64>
pub fn fault_sequence(&self, node: NodeId) -> Option<u64>
Exact fault sequence this round covers for node.
Sourcepub const fn fault_revision(&self) -> u64
pub const fn fault_revision(&self) -> u64
Exact shared-authority fault inventory revision frozen into this round.
Trait Implementations§
Source§impl Clone for RecoveryRound
impl Clone for RecoveryRound
Source§fn clone(&self) -> RecoveryRound
fn clone(&self) -> RecoveryRound
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RecoveryRound
impl Debug for RecoveryRound
Source§impl<'de> Deserialize<'de> for RecoveryRound
impl<'de> Deserialize<'de> for RecoveryRound
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for RecoveryRound
Source§impl PartialEq for RecoveryRound
impl PartialEq for RecoveryRound
Source§impl Serialize for RecoveryRound
impl Serialize for RecoveryRound
impl StructuralPartialEq for RecoveryRound
Auto Trait Implementations§
impl Freeze for RecoveryRound
impl RefUnwindSafe for RecoveryRound
impl Send for RecoveryRound
impl Sync for RecoveryRound
impl Unpin for RecoveryRound
impl UnsafeUnpin for RecoveryRound
impl UnwindSafe for RecoveryRound
Blanket Implementations§
impl<T> Allocation for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].