【发布时间】:2018-06-08 20:26:06
【问题描述】:
我有一个 Cassandra 2.1 集群,我们通过带有 TTL 的 Java 插入数据,因为持久化数据的要求是 30 天。 但这会导致问题,因为带有墓碑的旧数据的文件保存在磁盘上。这导致磁盘空间被不需要的数据占用。修复需要很长时间才能清除这些数据(单个节点最多需要 3 天) 有没有更好的方法来删除数据?
我在datastax上遇到过这个
Cassandra 允许您为整个表设置 default_time_to_live 属性。用常规 TTL 标记的列和行按上述处理;但是当一条记录超过表级别的 TTL 时,Cassandra 会立即将其删除,无需进行墓碑或压缩。 https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlAboutDeletes.html?hl=tombstone
如果我在表级别设置TTL而不是每次插入时都设置,是否会更有效地删除数据。 此外,文档适用于 Cassandra 3,所以我是否必须升级到新版本才能获得任何好处?
【问题讨论】:
-
修复不会删除数据,不应该真正进入 TTL 讨论。
标签: cassandra cassandra-3.0 cassandra-2.1