Repair Service(リペア・サービス)の概要
Repair Service(リペア・サービス)は、指定された完了時間内にDSEクラスターを周期的にリペアするためにバックグラウンド・プロセスとして実行されます。
Repair Service(リペア・サービス)によりリペア操作が実行され、ノードおよびレプリカ全体でほとんどの最新データが同期されます。これには、ファイルシステム・レベルで発生した破損データのリペアも含まれます。デフォルトでは、Repair Service(リペア・サービス)はほとんどのテーブルに対してサブ範囲リペアを実行し、特定のテーブルに対しては、インクリメンタル・リペアを実行するように構成できます。分散サブ範囲リペアは、大規模クラスターに対応したスケールアップを目的とした、リペア・サービス内のサブ範囲リペアの代替実装です。
- データが比較的静的な場合は、これらのテーブルまたはデータ・センターに対してインクリメンタル・リペアを構成します。
- データが動的で常に変化している場合は、サブ範囲リペアを使用し、環境に合わせてキースペースとテーブルを除外します。
- 非常に大規模なクラスターをリペアする場合にopscenterdプロセスがタイムリーなサブ範囲リペアのボトルネックになる場合は、分散サブ範囲リペアを使用してください。
nodetool repair
またはOpsCenterを使用して手動のノード・リペアを実行しないでください。サブ範囲リペア
サブ範囲リペアは、ノードが担当しているデータ部分をリペアします。サブ範囲リペアは、nodetool repair
コマンドで-st
オプションと-et
オプションを指定することに似ていますが、サブ範囲の開始トークンと終了トークンを自動的に判断して最適化するのはRepair Service(リペア・サービス)のみです。サブ範囲リペアの主な利点は、過剰なストリーミングを回避しながら、リペア対象をより正確に特定できることです。
分散サブ範囲リペア
分散サブ範囲リペアは、大規模クラスターを修復するために設計されています。opscenterdは、opscenterdに依存してサブ範囲リペアを調整するのではなく、1つまたは複数のキースペース全体のリストを単純に修復するようにエージェントに指示します。opscenterdが大まかなリペア・タスクの小さなリストをコーディネートし、その詳細をエージェントが処理たるために、エージェントは、キースペースのリペアの詳細をサブ範囲ごとに処理します。
インクリメンタル・リペア
インクリメンタル・リペアでは、インクリメンタル・リペア用に予約され、構成されているテーブルのまだリペアされていないデータのみがリペアされます。
サブ範囲リペアは除外(オプト・アウト)ベースで動作し、特定のキースペースやテーブルを除外できます。サブ範囲リペアから除外されるテーブルには、OpsCenterで予約されているテーブルと管理者が構成したテーブルが含まれます。インクリメンタル・リペアは包含(オプト・イン)ベースで動作します。インクリメンタル・リペアの対象として指定されているキースペースとテーブルのみがインクリメンタル・リペアで処理されます。インクリメンタル・リペアの対象となっているテーブルには、OpsCenterの組み込みテーブルと管理者が構成したテーブルが含まれます。
データが比較的静的な場合は、これらのテーブルまたはデータ・センターに対してインクリメンタル・リペアを構成します。データが動的で常に変化している場合は、サブ範囲リペアを使用し、環境に合わせてキースペースとテーブルを除外します。
サブ範囲リペアとインクリメンタル・リペアが重複することはありません。キースペースとテーブルは、サブ範囲リペアとインクリメンタル・リペアのどちらかでリペアされます。サブ範囲リペアとインクリメンタル・リペアは、テーブル・レベルで互いに排他的です。Repair Service(リペア・サービス)は、両方のタイプのリペアを同時に実行します。各リペア・タイプには独自のタイムラインがあり、リペア・ステータス・サマリーのそれぞれ対応するサブ範囲およびインクリメンタル進行状況バーで追跡されます。
並列およびシーケンシャル検証コンパクション処理
Repair Service(リペア・サービス)は、デフォルトではシーケンシャルではなく、並列処理で検証コンパクションを実行します。これは、シーケンシャル処理には非常に時間がかかるためです。snapshot_override
設定は、サブ範囲リペアとインクリメンタル・リペアの両方で検証コンパクションが並列処理されるか、シーケンシャルに処理されるかを制御します。「検証コンパクションをシーケンシャルに実行する」を参照してください。
Repair Service(リペア・サービス)が実行されない状態
単一ノードのクラスターはリペアの対象となりません。リペアではノードのレプリカの整合性を保つため、リペア・プロセス中にMerkleツリーを交換するために少なくとも2つのノードが必要になります。