Struct openraft::Membership
source · pub struct Membership<NID, N>{ /* private fields */ }
Expand description
The membership configuration of the cluster.
It could be a joint of one, two or more configs, i.e., a quorum is a node set that is superset of a majority of every config.
Implementations§
source§impl<NID, N> Membership<NID, N>
impl<NID, N> Membership<NID, N>
sourcepub fn new<T>(config: Vec<BTreeSet<NID>>, nodes: T) -> Selfwhere
T: IntoNodes<NID, N>,
pub fn new<T>(config: Vec<BTreeSet<NID>>, nodes: T) -> Selfwhere
T: IntoNodes<NID, N>,
Create a new Membership from a joint config of voter-ids and a collection of all
Node
(voter nodes and learner nodes).
A node id that is in nodes
but is not in config
is a learner.
A node presents in config
but not in nodes
is filled with default value.
The nodes
can be:
- a simple
()
, if there are no learner nodes, BTreeSet<NodeId>
provides learner node ids whoseNode
data areNode::default()
,BTreeMap<NodeId, Node>
provides nodes for every node id. Node ids that are not inconfigs
are learners.
sourcepub fn is_in_joint_consensus(&self) -> bool
👎Deprecated since 0.8.4: use get_joint_config().len() > 1
instead
pub fn is_in_joint_consensus(&self) -> bool
get_joint_config().len() > 1
insteadCheck to see if the config is currently in joint consensus.
sourcepub fn get_joint_config(&self) -> &Vec<BTreeSet<NID>>
pub fn get_joint_config(&self) -> &Vec<BTreeSet<NID>>
Returns reference to the joint config.
Membership is defined by a joint of multiple configs. Each config is a vec of node-id.
The returned Vec
contains one or more configs(currently it is two). If there is only one
config, it is in a uniform config, otherwise, it is in a joint consensus.
sourcepub fn nodes(&self) -> impl Iterator<Item = (&NID, &N)>
pub fn nodes(&self) -> impl Iterator<Item = (&NID, &N)>
Returns an Iterator of all nodes(voters and learners).
sourcepub fn get_node(&self, node_id: &NID) -> Option<&N>
pub fn get_node(&self, node_id: &NID) -> Option<&N>
Get a the node(either voter or learner) by node id.
sourcepub fn voter_ids(&self) -> impl Iterator<Item = NID>
pub fn voter_ids(&self) -> impl Iterator<Item = NID>
Returns an Iterator of all voter node ids. Learners are not included.
sourcepub fn learner_ids(&self) -> impl Iterator<Item = NID> + '_
pub fn learner_ids(&self) -> impl Iterator<Item = NID> + '_
Returns an Iterator of all learner node ids. Voters are not included.
Trait Implementations§
source§impl<NID, N> Clone for Membership<NID, N>
impl<NID, N> Clone for Membership<NID, N>
source§fn clone(&self) -> Membership<NID, N>
fn clone(&self) -> Membership<NID, N>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<NID, N> Debug for Membership<NID, N>
impl<NID, N> Debug for Membership<NID, N>
source§impl<NID, N> Default for Membership<NID, N>
impl<NID, N> Default for Membership<NID, N>
source§fn default() -> Membership<NID, N>
fn default() -> Membership<NID, N>
source§impl<'de, NID, N> Deserialize<'de> for Membership<NID, N>
impl<'de, NID, N> Deserialize<'de> for Membership<NID, N>
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>,
source§impl<NID, N> Display for Membership<NID, N>
impl<NID, N> Display for Membership<NID, N>
source§impl<NID, N> From<BTreeMap<NID, N>> for Membership<NID, N>
impl<NID, N> From<BTreeMap<NID, N>> for Membership<NID, N>
source§impl<NID, N> MessageSummary<Membership<NID, N>> for Membership<NID, N>
impl<NID, N> MessageSummary<Membership<NID, N>> for Membership<NID, N>
source§impl<NID, N> PartialEq for Membership<NID, N>
impl<NID, N> PartialEq for Membership<NID, N>
source§fn eq(&self, other: &Membership<NID, N>) -> bool
fn eq(&self, other: &Membership<NID, N>) -> bool
self
and other
values to be equal, and is used
by ==
.