[][src]Struct raftlog::cluster::ClusterConfig

pub struct ClusterConfig { /* fields omitted */ }

クラスタ構成.

クラスタに属するメンバの集合に加えて、 動的構成変更用の状態を管理する.

Methods

impl ClusterConfig[src]

pub fn state(&self) -> ClusterState[src]

現在のクラスタ状態を返す.

pub fn new_members(&self) -> &ClusterMembers[src]

構成変更後のメンバ集合が返される.

安定状態では、現在のメンバ群が返される (i.e, membersメソッドが返すメンバ群と等しい).

pub fn old_members(&self) -> &ClusterMembers[src]

構成変更前のメンバ集合が返される.

安定状態では、空集合が返される.

pub fn primary_members(&self) -> &ClusterMembers[src]

プライマリなメンバ集合が返される.

"プライマリな集合"とは、それに属するメンバーの過半数以上の合意が得られれば、 クラスタ全体の分散ログの整合性が崩れるようなことがないような 集合をことを指す.

これは、安定状態では「クラスタのメンバ群」と一致し、 構成変更時には「旧構成に属するメンバ群」となる.

pub fn members(&self) -> impl Iterator<Item = &NodeId>[src]

クラスタに属するメンバ群を返す.

構成変更中の場合には、新旧両方のメンバの和集合が返される.

pub fn is_known_node(&self, node: &NodeId) -> bool[src]

このクラスタ構成に含まれるノードかどうかを判定する.

pub fn new(members: ClusterMembers) -> Self[src]

新しい安定状態のClusterConfigインスタンスを生成する.

pub fn with_state(
    new_members: ClusterMembers,
    old_members: ClusterMembers,
    state: ClusterState
) -> Self
[src]

構成変更中のClusterConfigインスタンスを生成する.

Trait Implementations

impl Clone for ClusterConfig[src]

impl Debug for ClusterConfig[src]

impl Eq for ClusterConfig[src]

impl PartialEq<ClusterConfig> for ClusterConfig[src]

impl StructuralEq for ClusterConfig[src]

impl StructuralPartialEq for ClusterConfig[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.