pub trait QuorumBridge<Other>{
// Required method
fn bridge_to(&self, other: Other) -> Self;
}Expand description
Builds an intermediate quorum set that has QuorumIntersection with both
the source and the target quorum set.
Required Methods§
Sourcefn bridge_to(&self, other: Other) -> Self
fn bridge_to(&self, other: Other) -> Self
Build a quorum set X so that self ~ X ~ other, where ~ is the
QuorumIntersection relation.
Then X is the intermediate quorum set when changing membership from
self to other.
E.g.(cᵢcⱼ is a joint of cᵢ and cⱼ, and no two distinct configs among c₁, c₂,
c₃ have intersecting quorums):
c₁.bridge_to(c₁)returnsc₁c₁.bridge_to(c₂)returnsc₁c₂c₁c₂.bridge_to(c₂)returnsc₂c₁c₂.bridge_to(c₁)returnsc₁c₁c₂.bridge_to(c₃)returnsc₂c₃
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<ID> QuorumBridge<BTreeSet<ID>> for Vec<BTreeSet<ID>>
Builds an intermediate joint quorum set for a target flat config.
impl<ID> QuorumBridge<BTreeSet<ID>> for Vec<BTreeSet<ID>>
Builds an intermediate joint quorum set for a target flat config.
The result is the target alone when QuorumIntersection::intersects_with proves that every
quorum of self intersects every quorum of the target, e.g. when the target adds one voter to
a uniform self. Otherwise it is the joint of the last config of self and the target.
A Raft-style caller that applies a target-alone result must first commit an entry of the leader’s own term. Otherwise two leaders of different terms can each move from the same committed config to a different target, and the two targets can have disjoint quorums.