6

Cassandra に支えられた Titan Graph DB サーバーを永続ストアとして実行していますが、Cassandra トゥームストーンのしきい値の制限に達するという問題が発生しており、データが蓄積されるとクエリが定期的に失敗/タイムアウトします。追加された墓石の数に圧縮が追いついていないようです。

私たちのユースケースは以下をサポートしています:

  1. 高い読み取り/書き込みスループット。
  2. 読み取り感度が高い。
  3. Titan のノード値の頻繁な更新。Cassandra で行が更新されます。

上記の使用例を考慮して、以下を積極的に行うために Cassandra をすでに最適化しています。

  1. レベル化された圧縮戦略を使用した積極的な圧縮
  2. tombstone_compaction_interval を 60 秒として使用します。
  3. tombstone_threshold を 0.01 に使用する
  4. gc_grace_seconds を 1800 に設定する

次の最適化にもかかわらず、Cassandra ログに次のような警告が引き続き表示されます 。 )。8001 列が要求されました。スライス = [00-ff]、delInfo = {deletedAt = -9223372036854775808、localDeletion = 2147483647}

時折、時間の経過とともに、障害のしきい値を超えてエラーが発生することもあります。

cassandra.yaml ファイルの tombstone_warn_threshold は 10000 に設定されており、tombstone_failure_threshold は推奨値の 250000 よりもはるかに高く設定されていますが、特に目立ったメリットはありません。

さらに最適化する余地がある場合は、正しい構成を示すことができるヘルプがあれば大歓迎です。お時間とご協力いただきありがとうございます。

4

4 に答える 4

7

問題の根源はデータモデルにあるようです。TombstoneOverwhelmingException の発生を軽減するためにできることはすべて実行しました。データ モデルはトゥームストーンを作成するような頻繁な更新を必要とするため、Cassandra のような結果整合性のあるストアはユース ケースに適していない可能性があります。この種の問題を経験したとき、Cassandra の強みにより適合するようにデータ モデルを変更する必要がありました。

削除についてhttp://www.slideshare.net/planetcassandra/8-axel-liljencrantz-23204252 (スライド 34-39)

于 2015-03-10T20:37:42.483 に答える
6

トゥームストーンは、テーブルのgc_grace_seconds構成が特定のトゥームストーンに対して経過するまで圧縮されません。そのため、圧縮間隔を増やしても、トゥームストーンは gc_grace_seconds が経過するまで削除されません。デフォルトは 10 日です。gc_grace_seconds をより低い値に調整して、より頻繁に修復を行うことができます (通常は、gc_grace_seconds_in_days - 1 日ごとに修復をスケジュールする必要があります)。

于 2015-03-10T19:54:46.997 に答える