以下は私が使用しているテーブルスキーマです。カサンドラのバージョンは、継続的に挿入されますと同じ(得意先、ユーザー)レコードの場合2.1Cassandraのマイナーコンパクションは、経過したTTLレコードを削除します
CREATE TABLE metadata ( customerid int, user text, messageid text, subject text, PRIMARY KEY ((customerid, user), messageid)) WITH CLUSTERING ORDER BY (messageid ASC) AND compaction = {'class':'org.apache.cassandra.db.compaction.LeveledCompactionStrategy', 'sstable_size_in_mb' : '4'} AND gc_grace_seconds = 172800 ;
です。挿入中はTTLを設定します.TTLは最小14日で、常にgc_grace_secondsより大きくなります。
更新や削除は行われません。
同じ(customerid、user)の場合、複数のSSTableファイルにデータを格納できます。
LCS圧縮が実行されている間に、圧縮されていない他のSSTableファイルに同じパーティションキーのデータがあっても経過したレコードは削除されます。私が読んカサンドラメールアーカイブの1、
で「行の全ての断片が圧縮されているSSTablesに含まれている場合墓石はマイナー圧縮によって期限切れになります。」
は、TTLとのデータのため、この適用されますまた?
TTLedデータは、削除マーカーと同じ墓碑ではありません.GCGでは保持されません。すぐに消去することができます。 –