3

CAP 定理では mongoDB は CP であると誰もが言います。ただし、マスター/スレーブ レプリケーションを使用すると、可用性も高くなります (プライマリに障害が発生した場合、残りのメンバーは自動的に新しいプライマリを選択しようとします)。私の質問は、どの状況で (そしてどのように) AP を持つことができるか (結果整合性で) ですか?

4

2 に答える 2

8

実際には、2 つの部分からなる答えがあります。

  1. シャーディング レベル: データ セグメントごとに信頼できるシャードは 1 つだけあり (C)、シャードは独立して動作します (P)、シャードが利用できない場合、そのデータも利用できません (A)

  2. レプリカ セット レベル: 権限のあるマスター ノードが 1 つだけあり (C)、必要に応じて新しいマスターが選択されます (P)。プライマリがない場合 (数秒しか続かないはずの投票フェーズ中ですが、それで十分です)、アクセスできません。そのノードのデータ。セカンダリからの読み取り (結果整合性) を有効にすると、投票フェーズ中にセカンダリからデータを読み取ることができますが、新しいデータを書き込むことはできません。したがって、それはCPシステムです。

一般に、3 番目の特性が完全に失われるわけではありませんが、追加のレイテンシーやオーバーヘッドと交換するか、短時間使用しないことと交換します。

于 2013-04-28T22:30:11.150 に答える
1

C、A、P をすべて一緒に持つことはまったく不可能です。これが定理です。それらすべてを持つことはできません。2 つしか取ることができません。

見る :

CAP定理でmongodbはどこに立っていますか?

于 2013-04-27T05:22:44.380 に答える