【发布时间】:2016-11-02 17:44:05
【问题描述】:
下面是我正在使用的表架构。 Cassandra 版本是 2.1
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 ;
对于相同的 (customerid,user) 记录将被连续插入。在插入时,我们设置 TTL 至少为 14 天,并且始终大于 gc_grace_seconds。
不会发生更新或删除。
对于相同的(customerid、user),我们可以在多个 SSTable 文件中保存数据。
当 LCS 压缩运行时,即使其他未压缩的 SSTable 文件具有相同分区键的数据,它是否会删除已过去的记录。在我阅读的一个 cassandra 邮件档案中,
"如果行的所有片段都包含在正在压缩的 SSTables 中,则墓碑将通过 Minor Compaction 过期。"
这是否也适用于具有 TTL 的数据?
【问题讨论】: