マテリアライズド・ビューのベスト・プラクティス
ベース・テーブルとマテリアライズド・ビューの間の不整合を防ぐため、次のガイドラインに従ってください。
- ベースとビューの不整合を回避するために、ONE(LOCAL_QUORUMなど)より大きい整合性レベルを使用して、マテリアライズド・ビューでベース・テーブルに書き込みます。または、
-Dmv_enable_coordinator_batchlog=true
オプションを使用して、要求の途中で失敗したコーディネーターに対する保護を強化することもできます。注:-Dmv_enable_coordinator_batchlog=true
オプションを使用すると、ビューの書き込み操作が大幅に遅くなります。 - ノードが削除または置換された場合、
max_hint_window_in_ms
で指定した値よりダウン時間が長い場合、または新しいデータ・センターが追加された場合は、ベース・テーブルとビューの両方でリペア操作を実行します。この推奨事項は、マテリアライズド・ビューを持つテーブルだけでなく、テーブルのデータ損失を防ぐ場合に効果的です。 - ビューに対して定期的にリペアを実行し(
gc_grace_seconds
で指定した期間ごとに少なくとも1回)、ビューのトゥームストーンがすべてのレプリカに確実に伝播されるようにし、データの復活を防止します。この推奨事項は、手動で非正規化されたテーブルなど、削除操作が発生したテーブルに対して効果的です。