主要观点:Cassandra 和 ScyllaDB 存在修复和垃圾回收过程间的潜在竞争条件问题,可能导致删除的数据复活。需确定确保无数据复活风险的修复时间要求,即连续修复需在垃圾回收宽限期内开始和完成。
关键信息:
- 删数据时只写 tombstone 标记,实际删除在压缩过程,且需在垃圾回收宽限期后。
- 存在最终一致性复制和冲突解决机制,可能导致 tombstone 未及时传播。
- nodetool repair 和集群修复的概念及相关工具。
- 文档推荐的 nodetool 修复频率存在理论和实际不足,可能导致数据复活。
- 需保证连续修复在 tombstone 过期前完成,实际操作有性能挑战。
- Cassandra 即将推出新的内置集群修复功能,ScyllaDB 有相关改进措施,还有其他删除数据的方法及变体。
重要细节: - 示例 1 和示例 2 详细说明了修复时间和 tombstone 过期时间的关系及可能导致的数据复活情况。
- 对于 Cassandra,新的统一修复解决方案会跟踪最旧修复节点并提供相关指标。
- ScyllaDB 的修复基于 tombstone 垃圾回收功能可延长垃圾回收宽限期。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。