2016-11-19 12 views
1

私はCassandra 2.2を使用しており、高いレベルの整合性を必要とするアプリケーションがあります。Cassandra 2.2の一貫性とタイムアウトの問題

3つのノードを持つデータセンタークラスタを1つ設定しました。 私のキースペースはreplication_factorで作成されました。 それぞれのconfiguration.yamlファイルに2つのseed_providers(たとえばNODE_1とNODE_3)を設定しました。

重要なことは、1つのノードがダウンしていても、私のアプリケーションはフル機能でなければならないということです。

現在のところ、私のアプリがクラスタに接続する際の一貫性とタイムアウトに関する問題があります。

私は、全体のカサンドラ2.2ドキュメントを読んでいると私は私の書き込み操作のための最高のCONSISTENCY LEVELQUORUMと私の読み取り操作ONEのためにする必要がありますが、私はまだいくつかの一貫性の問題を持っていると結論付けました。

まず第一に、一貫性の強さは正しい選択ですか? また、例えば、WHERE句を使用した更新操作でもデータの読み取りが必要なため、UPDATEおよびDELETE操作は書き込み操作または読み取り操作と見なされますか?私は、空間的には、キャスアンドラのワークフローの文脈では分かりません。

第2の問題は、書き込み操作中のタイムアウトです。単純で軽量のINSERTは、ときどき私の3つのノードがすべてアップしていても "Cassandra timeout during write query at consistency QUORUM (2 replicas were required but only 1 acknowledged the write)" または "... 0 acknoledged"というsometinesを取得します。

たとえば、write_request_timeout_in_msのように、既定値が2000ミリ秒(これはすでに高い値です)のように確認する必要があるいくつかのパラメータがありますか?

答えて

0

あなたはReplication Factor = 2Consistency Level = QUORUM書き込み操作と読み取り操作のためのONEと強い一貫性を持っています。ただし、1つのノードが停止していると、書き込み操作は失敗します。 Consistency Level = QUORUMReplication Factor = 2の場合はALLと同じです。

書き込み操作と読み取り操作の両方に1つのノードがダウンしても、強力な整合性と完全な機能のアプリケーションを持たせるには、Replication Factor = 3Consistency Level = QUORUMを使用する必要があります。

DELETEおよびUPDATE操作は書き込み操作です。

タイムアウトの問題については、失敗したテーブルモデルとクエリを提供してください。

更新

整合性レベルは複製ではなく、ノードに適用されます。

複製率= 2は、3つのノードのうち2つにデータが含まれることを意味します。これらのノードはレプリカになります。

QUORUMは、書き込み操作が、ノードではなく、2 レプリカ(レプリケーションファクタ= 2の場合)によって確認されなければならないことを意味します。

Cassandraは、パーティションキーに従って各ノードにデータを配置します。各ノードは、の範囲のパーティションキーを担当します。どのノードもデータを保存することができないため、操作を実行するための生きているレプリカ(ノードではない)が必要です。ここに記事about data replication and distribution

3つのアライブノードのうち2つを使用してクラスタにQUORUM書き込み要求を実行すると、クラスタにはパーティションキー用の1つのアライブレプリカしか存在しない可能性があります。この場合、書き込み要求は失敗します。

さらに:ここにはsimple calculator for Cassandra parameters

+0

ありがとうございました。しかし、ちょっと説明してください。最初に3つのノードをレプリケーションファクタ2で使用すると、1つのノードに障害が発生した場合に書き込み操作が失敗します。 1つの障害ノードでは、まだ2つのノードを使用できます。私の考えでは、この場合、QUORUM整合性(2つの複製は確認されていなければならない)で書かなければならない。しかし、私はおそらく間違っています。ありがとうございました。 –

+0

@ TheWingman、私は私の答えに複製に関する説明を追加しました –

+0

これらの説明はありがとうございます。それははるかに明確です –

関連する問題