sql >> データベース >  >> NoSQL >> MongoDB

MongoDBレプリケーションに「アービター」が必要なのはなぜですか?

    レプリカセット内のアービターノードの効果をわかりやすく説明するために、スプレッドシートを作成しました。

    基本的には次の点になります:

    1. RSが2データノードの場合 、1台のサーバーを失うと、投票の最小値( "N / 2より大きい")を下回ります。アービターがこれを解決します。
    2. RSが偶数のデータノードの場合 、アービターを追加すると、分割により2つの投票クラスターを持つことができなくなり、フォールトトレランスが1増加します。
    3. RSが奇数のデータノードの場合 、アービターを追加すると、スプリットで「N / 2より大きい」票を持つ2つの分離クラスターを作成できるため、スプリットブレインシナリオが可能になります。

    選挙については、ここで詳細に説明されています。その文書では、状態 RSは50人のメンバー(偶数)と7人の投票メンバーを持つことができます。 説明ではないため、「状態」を強調します 使い方。私には、一方の側に4人のメンバー(すべて投票)があり、もう一方の側に46人のメンバー(3人の投票)があるスプリットが発生した場合、46人がプライマリーを選択し、4人が読み取り対象になるようにします。クラスターのみ。しかし、それこそが「限定投票」が防ぐものです。そのような状況では、実際には、プライマリを備えた4メンバーのクラスターと、読み取り専用の46メンバーのクラスターがあります。それがどのように理にかなっているのかを説明することは、この質問の範囲外であり、私の知識を超えています。



    1. MongoDB map()

    2. 春のデータmongoページネーション

    3. PyMongoで.sortを使用する

    4. コマンドラインからMongoDBデータベースを削除するにはどうすればよいですか?