DS201の実施_Compaction
DS201: Foundations of Apache Cassandra™ and DataStax Enterpriseの学習
概要
Compactionは、不要なデータを削除し、データの配置を最適化することで、データベースのパフォーマンスを向上させる。Compactionには、メジャーとマイナーコンパクションの2つの主要なタイプがある。
マイナーコンパクション
マイナーコンパクションは、SSTable内のデータのみを対象とし、データの重複を削除し、1つのSSTableにまとめることで容量を削減する。マイナーコンパクションでは、トゥームストーン(削除マーカー)が処理され、不要なデータが完全に削除される。トゥームストーンは、Cassandraで削除操作が行われた場合に挿入されるマーカーである。データの削除は即座に行われず、トゥームストーンが挿入されてデータが「削除済み」とマークされる。Compactionプロセスでは、トゥームストーンのあるSSTableから削除マーカーを削除し、不要なデータを完全にクリーンアップする。
メジャーコンパクション
メジャーコンパクションは、複数のSSTable間のマージを行う。複数のSSTableを1つの新しいSSTableに結合し、データの重複を削除し、不要なトゥームストーンを削除する。また、GC(ガベージコレクション)も実行する。GCは、Compactionプロセスが完了した後に、不要なデータとトゥームストーンを物理的に削除する役割を果たす。これにより、ディスクスペースが解放され、データベースのパフォーマンスが向上する。
メジャーコンパクションは、データベースの大規模な再構築を必要とするため、システムの負荷が高くなる。したがって、Cassandraでは通常、バックグラウンドで自動的にメジャーコンパクションがスケジュールされる。メジャーコンパクションのスケジュールは、ディスクの使用状況やデータの更新頻度などを考慮して、自動的に調整される。