2

すべてのノードが稼働しているときに、耐障害性があり、読み取りが高速な最適な書き込み/読み取り戦略は何ですか?

各データセンターに 2 つのレプリカがあり、最初は書き込みに QUORUM を使用し、読み取りに LOCAL_QUORUM を使用することを検討していましたが、1 つのノードがクラッシュすると読み取りが失敗します。

私が思いついたもう 1 つの戦略は、書き込みに QUORUM を使用し、読み取りに TWO を使用することです。通常の状態では高速に動作し (最初に最も近いノードから結果を取得するため)、いずれかのノードがクラッシュすると動作が遅くなります。

  1. これは、整合性レベル 2 の使用が推奨される状況ですか、それとも他の目的のためですか?
  2. CL THREE をいつ使用しますか?
  3. 一貫性のあるフォールトトレラントな書き込み/読み取りのためのより良い戦略はありますか?
4

1 に答える 1

2

最初に、一貫性と可用性のどちらが必要かを選択する必要があります。整合性を選択した場合、R + W > N である必要があります。ここで、R は読み取り元のノード数、W は書き込み先のノード数、N はレプリカの数です。

次に、読み取り/書き込みが常に複数のデータセンターにまたがるようにするかどうかを選択する必要があります。

これらの選択を行ったら、一貫性レベルを選択できます (または指示されます)。

たとえば、一貫性が必要であり、書き込み/読み取りを複数のデータセンターにまたがらせたくない場合は、LOCAL_QUORUM (この場合は 2) で読み取り、ONE で書き込み、またはその逆を行うことができます。

DC ごとに 2 つのコピーというのは奇妙な選択です。通常、各データ センターに 3 つのレプリカを配置して、LOCAL_QUORUM を実行します。これにより、データセンター内のノードを使用してのみ読み取りと書き込みが可能になりますが、1 つのノードがダウンすることは許されます。

于 2013-02-09T06:30:00.787 に答える