如果我的Cassandra DELETE
操作始终使用ALL
的一致性级别,那么将gc_grace_seconds
属性降低到较低值是否安全?在我看来,ALL
一致性级别意味着永远不需要修复删除操作,因此GC宽限期提供的安全性是不必要的。或者是否存在意味着GC宽限期仍然有用的极端情况?
答案 0 :(得分:2)
永远不要说永远,但似乎你可以做到这一点。当某些节点出现故障或网络拥塞时,您正在牺牲能够进行删除的高可用性,因此在操作上可能会令人头疼,因为节点不可避免地会出现停机。可能该方法仅适用于LAN上连接的非常小的集群。
您可能需要考虑的一个案例是,如果操作员决定恢复表的快照会发生什么。这可能会在拍摄快照后恢复您用ALL删除的一些数据。
您可能希望使用TTL来掩盖自己,这样如果您错过了删除,数据最终会自行超时。
我有时认为如果所有副本都有删除,C *应该有删除墓碑的选项。无条件地将它们保持十天似乎有点过头了。