2016-11-01 5 views
0

私は3ノードEc2 Cassandraクラスタを持っています。 2つのノードがシードとして設定されます。キースペースは、1つのデータセンター(us-east)と3の複製係数を持つNetworkTopologyStrategyで構成されます。スニッチはEc2Snitchとして設定されます。何度も同じクエリーを実行すると、時には結果とそれ以外の時間が返されることがあります。これは、私が間違って何かを設定したことを示し、データがないノードに時々乗っていることを示します。Cassandraクラスタが正しく構成されていませんか?奇妙なクエリ結果

これを別に設定する必要がありますか?私はCassandraには比較的新しいので、昨日2つのノードを追加しました。これまでは、テストの目的で1つのノードクラスタを実行していました。私たちが生産に移行するにつれて、冗長性のためにいくつかの余分なノードを追加したかったのです。

答えて

0

これは、クラスタに新しいノードを追加してからRFを増やしてから整合性レベルが低く、修復を実行していない可能性が高いためです。だから現在カッサンドラは、新しいノードにデータがあることを期待していますが、修復を実行するまでデータは実際にストリームされません。

今後のデバッグでは、cqlshでTRACING ONを使用してください。これにより、クエリの実行中にどのノードが話されているかについての詳細情報が表示されます。

+0

私は非常に低い整合性レベル(1つ)を持っています。カサンドラはやっと複製するはずですね。それをONEに設定すると、最終的に一貫していることを意味しますか? TRACING ONについての便利なヒント - 私はその機能を認識していなかったので、役立つでしょう。私は実際に何回も修理をしましたが、修理後に問題は依然として続き、私は奇妙に感じました。 – cloudwalker

+0

Hmmでは、結果がトレースを使用しているかどうかを確認できます。また、SSTable自体でsstable2jsonを実行することによって、個々のノードにデータがあるかどうかを確認することもできます。 –