Cassandraのレプリケーション係数と一貫性レベルを理解する 質問する

Cassandraのレプリケーション係数と一貫性レベルを理解する 質問する

Cassandra のレプリケーション係数と一貫性レベルの非常に基本的な概念を明確にしたいと思います。以下の質問に対する回答をいただけると大変ありがたく思います。

RF- レプリケーション係数 RC- 読み取り一貫性 WC- 書き込み一貫性

2 つの Cassandra ノード (例: A、B) RF=1、RC=ONE、WC=ONE または ANY

  • ノード A にデータを書き込み、ノード B から読み取ることはできますか?
  • A がダウンしたらどうなるでしょうか?

3 つの Cassandra ノード (例: A、B、C) RF=2、RC=QUORUM、WC=QUORUM

  • ノード A にデータを書き込み、ノード C から読み取ることはできますか?
  • ノード A がダウンすると何が起こりますか?

3 つの Cassandra ノード (例: A、B、C) RF=3、RC=QUORUM、WC=QUORUM

  • ノード A にデータを書き込み、ノード C から読み取ることはできますか?
  • ノード A がダウンすると何が起こりますか?

ベストアンサー1

要約: レプリケーション係数は、データのコピーがいくつ存在するかを表します。一貫性レベルは、クライアントが認識する動作を表します。おそらく、これらを分類するより良い方法があるでしょう。

たとえば、レプリケーション係数を 2 にすることができます。書き込みを行うと、十分な数のノードが稼働していると仮定すると、常に 2 つのコピーが保存されます。ノードがダウンすると、そのノードへの書き込みは保管され、ノードが復帰したときに書き込まれます。ただし、ノードがダウンして Cassandra が完全に消失したと判断するほど長い時間が経過した場合は除きます。

さて、この例では、一貫性レベルを ONE にして書き込みを行ったとします。クライアントは、1 つのノードへの書き込みが完了した後、2 番目の書き込みを待たずに成功の確認を受け取ります。CL を ALL にして書き込みを行った場合、クライアントへの確認は両方のコピーが書き込まれるまで待機します。一貫性レベルのオプションは他にもたくさんありますが、ここではすべてを網羅するには多すぎます。データスタックスドキュメントただし、それらをうまく説明しています。

同じ例で、一貫性レベル ONE で読み取りを行うと、単一のレプリカが応答した後に応答がクライアントに送信されます。別のレプリカに新しいデータがある場合、応答は最新ではありません。多くの場合、これで十分です。他の状況では、クライアントは最新の情報を必要とし、読み取り時に異なる一貫性レベル (レベル ALL など) を使用します。このように、Cassandra やその他のポストリレーショナル データベースの一貫性は、リレーショナル データベースでは通常できない方法で調整可能です。

さて、あなたの例に戻りましょう。

例 1: はい、B に独自のレプリカがない場合でも、A に書き込み、B から読み取ることができます。B はクライアントに代わって A に要求します。これは、すべてのノードが稼働している他のケースにも当てはまります。すべてのノードが稼働している場合は、1 つのノードに書き込み、別のノードから読み取ることができます。

書き込みについては、WC=ONE の場合、単一のレプリカのノードが起動していて、接続先のノードである場合、書き込みは成功します。他のノードの場合、書き込みは失敗します。ANY を使用すると、起動中のノードと通信していると仮定して、書き込みは成功します。そのためには、ヒント ハンドオフも有効にする必要があると思います。ダウン ノードは後でデータを取得しますが、それが発生するまで、起動中のノードからでもデータを読み取ることはできません。

他の 2 つの例では、レプリケーション係数は最終的に書き込まれるコピーの数に影響しますが、上で説明したもの以外のクライアントの動作には影響しません。QUORUM は、書き込みと読み取りに応答する十分な数のノードが稼働している必要があるという点で、クライアントの動作に影響します。運が良ければ、必要なノードのうち少なくとも (ノード/2) + 1 個のノードが稼働していれば、書き込みと読み取りは成功します。レプリカが稼働しているノードが十分でない場合、読み取りと書き込みは失敗します。全体的に、ノードがダウンしていても、そのノードがレプリカの保存に必要ないか、そのノードが停止しても十分なレプリカ ノードが残っていると仮定すると、一部の QUORUM 読み取りと書き込みは成功します。

おすすめ記事