アンチエントロピー・リペアを実行する状況

ノードでアンチエントロピー・リペアの実行が必要な状況。

アンチエントロピー・リペアを実行すべき状況は、クラスターの特性によって異なります。ここでは、一般的なガイドラインを示します。それぞれ特定のケースに合わせて行ってください。
注: リペアのしくみを理解するには、このページに記載されている情報を十分理解する必要があります。「アンチエントロピー・リペア」を参照してください。

リペアが必要な状況

以下のような状況の場合に、リペアを実行します。

  • ノードの健全性を定期的に保守するとき。
    注: まったく削除が行われない場合でも、定期的なリペアを予定してください。カラムをNullに設定すると削除になります。
  • 障害が発生した後で、ノードをクラスターに戻している間に、ノードを復旧するとき。
  • めったに読み取られない(つまり、読み取りリペアが発生しない)データを含むノード上のデータを更新するとき。
  • ダウンしているノードのデータを更新するとき。
  • 欠落データや破損したSSTableを復旧させるとき。インクリメンタル以外のリペアを実行する必要があります。

ノード・リペアを定期的に実行するためのガイドライン

  • フル・リペアを毎週または毎月実行します。一般的に、毎月で十分ですが、保証対象の場合は、頻繁に実行してください。
    重要: フル・リペアは、削除が一切発生しない場合でも、データの整合性を確保するために役立ちます。
  • リペアの範囲によって妨げられていない限り、パラレルおよびパーティショナー範囲のオプションを使用してください。
  • インクリメンタル・リペアを移行してから、フル・リペアを実行してアンチコンパクションを排除します。アンチコンパクションは、SSTableを2つのSSTable(一方がリペア済みデータを含み、もう一方が未リペア・データを含む)に分割するプロセスです。アンチコンパクションは、コンパクション・ストラテジに影響を及ぼします。
  • gc_grace_seconds設定で指定した時間に達する前に、すべてのノードがリペアされるよう十分な頻度でリペアを実行する。この要件が満たされる場合、クラスターの削除されたデータは適切に処理されます。
  • クラスターの障害を最小限に抑えるため、利用の少ない時間帯に一度に1ノードずつ、定期的なノード・リペアを予定します。
  • データの削除や上書きがめったに行われない場合は、gc_grace_secondsの設定で時間の値を大きくしてください。このようなテーブルでは、設定を変更することでディスク領域への影響を最小限に抑え、リペア操作の頻度を減らすことができます。
  • リペアを実行する前に、nodetoolコンパクション・スロットル・オプション(setcompactionthroughputおよびsetcompactionthreshold)を構成すると、頻繁なディスク使用が軽減されます。

ダウンしたノードでリペアを実行するためのガイドライン

  • パーティショナー範囲、-prを使用しない。
  • インクリメンタル・リペア、-incを使用しない。