読み取りリペア:読み取りパス中のリペア
読み取りリペア、読み取りパス中のリペアの説明。
読み取りリペアは、読み取り要求でDataStax Enterpriseクラスター内の整合性を改善します。
読み取りでは、コーディネーター・ノードは1つのレプリカ・ノードにデータ要求を送信し、他のノードにONE
より大きい整合性レベル(CL)の要求をダイジェストします。すべてのノードが整合性のあるデータを返すと、コーディネーターはそのデータをクライアントに返します。データベースがレプリカ間の不整合をどのように処理するかについては、「読み取り要求はどのように実行されるか」を参照してください。
読み取りリペアでは、データベースは、読み取りに直接関与しない各レプリカにダイジェスト要求を送信します。データベースはすべてのレプリカを比較し、最新バージョンを持っていないレプリカ・ノードに最新バージョンを書き込みます。クエリーの整合性レベルがONE
より大きい場合、データベースは、データがクライアントに返される前に、フォアグラウンドのすべてのレプリカ・ノードでこのプロセスを実行します。読み取りリペアは、読み取りによってクエリーされたすべてのノードをリペアします。これは、整合性レベルがONE
またはANY
の場合、比較されないため、データがリペアされないことを意味します。QUORUM
の場合は、すべてのノードではなく、クエリーが到達するノードのみがリペアされます。
DTCSコンパクションで使用されるタイムスタンプのチェック方法のため、DateTieredCompactionStrategy(廃止予定)を使用するテーブルでは、読み取りリペアを実行できません。テーブルでDateTieredCompactionStrategy
を使用する場合は、read_repair_chance
を0に設定します。他のコンパクション・ストラテジでは、read_repair_chance
は通常、0.2の値に設定されます。