0

削除後に Cassandra でスペースがどのくらいの速さで再利用されるかを理解しようとしています。範囲クエリを実行していて、Cassandra が多くの廃棄された行をスキャンして、はるかに希少なライブ行を見つける必要がある場合に、廃棄とこれが引き起こす可能性がある問題について説明している多くの記事を見つけました。また、gc_grace_seconds を低く設定しすぎると、ノードがオフラインになり、残りのマシンから墓石が消えた後に戻ってきた場合に、ゾンビ レコードがポップアップする可能性があることがわかります。それはすべて理にかなっています。

ただし、トゥームストーンがキーに配置されている場合は、残りの行データからのスペースを再利用できるはずです。

だから私の質問は、このテーブルについてです:

create table somedata (
  category text,
  id timeuuid,
  data blob,
  primary key ((category), id)
);

このテーブルに多数のレコードを挿入してから削除し、上記のトゥームストーン + 範囲の問題に遭遇しないように注意した場合、それらの BLOB のスペースはいつ回収されますか?

私の場合、ブロブは推奨サイズ (1 MB だと思います) よりも大きい場合がありますが、15 MB を超えてはいけません。これはまだ実行可能だと思います。ただし、これらのブロブのすべてが 10 日間 (デフォルトの gc_grace_seconds 値) 保持される場合と、キーのみが 10 日間保持される場合とでは、スペースに大きな違いが生じます。

私が見たとき、どこにも説明されているこの特定の側面を見つけることができませんでした.

4

1 に答える 1

1

gc_grace_seconds 句が完了すると、スペースが再利用され、キーとブロブが残ります。また、更新 (作成時のタイムスタンプによって識別される同じレコードの異なるバージョン) と使用される複製係数 (配布された同じレコードのコピーの量) もある場合、これが増加する可能性があることを考慮する必要があります。ノード全体)。

障害回復力とディスク使用量の間には常にトレードオフがあり、設定のカスタマイズ (gc_grace_seconds、ttl、レプリケーション ファクター、整合性レベル) は、ユース ケースと満たす必要がある SLA によって異なります。

于 2016-11-23T18:18:24.717 に答える