CAP 定理では mongoDB は CP であると誰もが言います。ただし、マスター/スレーブ レプリケーションを使用すると、可用性も高くなります (プライマリに障害が発生した場合、残りのメンバーは自動的に新しいプライマリを選択しようとします)。私の質問は、どの状況で (そしてどのように) AP を持つことができるか (結果整合性で) ですか?
質問する
2570 次
2 に答える
8
実際には、2 つの部分からなる答えがあります。
シャーディング レベル: データ セグメントごとに信頼できるシャードは 1 つだけあり (C)、シャードは独立して動作します (P)、シャードが利用できない場合、そのデータも利用できません (A)
レプリカ セット レベル: 権限のあるマスター ノードが 1 つだけあり (C)、必要に応じて新しいマスターが選択されます (P)。プライマリがない場合 (数秒しか続かないはずの投票フェーズ中ですが、それで十分です)、アクセスできません。そのノードのデータ。セカンダリからの読み取り (結果整合性) を有効にすると、投票フェーズ中にセカンダリからデータを読み取ることができますが、新しいデータを書き込むことはできません。したがって、それはCPシステムです。
一般に、3 番目の特性が完全に失われるわけではありませんが、追加のレイテンシーやオーバーヘッドと交換するか、短時間使用しないことと交換します。
于 2013-04-28T22:30:11.150 に答える
1
C、A、P をすべて一緒に持つことはまったく不可能です。これが定理です。それらすべてを持つことはできません。2 つしか取ることができません。
見る :
于 2013-04-27T05:22:44.380 に答える