在Cassandra(here)过期数据的文档中,提到了
与标准数据相比,过期数据在内存和磁盘上有8个字节的额外开销(记录TTL和到期时间)。
如果在表级别设置TTL(生存时间),这是否意味着对于每个数据条目,内存和磁盘上的开销增加8个字节,乘以列数,或者& #39; s与列数无关?
例如,在文档中,还可以找到示例here以确定列的TTL,即使数据插入多于1列并且TTL是为插入的实际数据条目定义的,而不是以每列为基础。
答案 0 :(得分:2)
根据Cassandra documentation,在创建表部分,它说:
default_time_to_live
TTL(生存时间),以秒为单位,其中为零 禁用。指定时,将为生存时间(TTL)设置该值 表格中每列的标记;默认值:0。当表 超出TTL,表格被墓碑化。
这意味着当您为表定义TTL时,它对每个列(主键除外)都有效。
答案 1 :(得分:2)
不,至少不再这样了。该文档已过时,仅与3.0之前相关。
目前,如果分区中的所有列或分区中的行在插入时都设置了相同的TTL,则只需为其设置一次。如果它们被存储,则它们从sstables minTimestamp写为delta编码为无符号变量int,而不是8个字节。