简单查询:- 我用 gc_grace_seconds 10 天删除了 Scylla 上的数据。Scylla 创建了墓碑并等待 gc_grace_seconds 过期。
现在,我在删除后的第二天运行了主要压缩(gc_grace_seconds 到期还剩下 8 天)。
1)什么压缩会做?它将考虑所有墓碑并清除2天前删除的内容?
2) 我应该在运行主要压缩之前更改 gc_grace_seconds=0 吗?
请帮忙
提前致谢。
1)至少在 Cassandra(不知道 scylla)中,直到 gc_grace_seconds 过去,它才会清除墓碑。这就是宽限秒的用途——告诉数据库将墓碑保留至少那么长时间。
2)如果你真的想清除它们,你可以。使用 0 gc grace 也意味着提示不会存储在 Cassandra 中,因此可能需要设置为,1
除非您认为新写入数据的持久性降低。还需要确保在您的数据被写入后修复已经完成,或者墓碑清除的数据可能(尽管不太可能)被复活。only_purge_repaired_tombstones
如果数据尚未修复,如果设置将阻止清除甚至超过 gc 宽限期(我建议将其设置为它的价值)