在 Cassandra 和 ScyllaDB 中防止数据复活的修复时间要求

主要观点:Cassandra 和 ScyllaDB 存在修复和垃圾回收过程间的潜在竞争条件问题,可能导致删除的数据复活。需确定确保无数据复活风险的修复时间要求,即连续修复需在垃圾回收宽限期内开始和完成。
关键信息

  • 删数据时只写 tombstone 标记,实际删除在压缩过程,且需在垃圾回收宽限期后。
  • 存在最终一致性复制和冲突解决机制,可能导致 tombstone 未及时传播。
  • nodetool repair 和集群修复的概念及相关工具。
  • 文档推荐的 nodetool 修复频率存在理论和实际不足,可能导致数据复活。
  • 需保证连续修复在 tombstone 过期前完成,实际操作有性能挑战。
  • Cassandra 即将推出新的内置集群修复功能,ScyllaDB 有相关改进措施,还有其他删除数据的方法及变体。
    重要细节
  • 示例 1 和示例 2 详细说明了修复时间和 tombstone 过期时间的关系及可能导致的数据复活情况。
  • 对于 Cassandra,新的统一修复解决方案会跟踪最旧修复节点并提供相关指标。
  • ScyllaDB 的修复基于 tombstone 垃圾回收功能可延长垃圾回收宽限期。
阅读 8
0 条评论