【问题标题】:Avoid zombie data in cassandra避免 cassandra 中的僵尸数据
【发布时间】:2021-11-04 22:54:07
【问题描述】:

最近,我在使用 3 节点集群的客户设置中遇到了一个问题,其中一个节点出现故障并仅在 12 天后才上线。在我们的场景中,大部分表的默认 gc_grace_seconds 已设置为 1 天,并且表很多。

当这个宕机节点出现时,这个节点的陈旧数据被复制到其他节点,导致三个节点都出现僵尸数据。

我能想到的一个解决方案是在节点加入集群之前对其进行清理,然后运行修复以防止出现僵尸数据。 在我不需要清理节点的情况下,是否有任何其他可能的解决方案来避免这个问题。

【问题讨论】:

    标签: cassandra tombstone


    【解决方案1】:

    如果节点停机时间超过最短时间gc_grace_seconds,则永远不要让节点重新联机。

    在 GC 宽限设置为非常低的值的环境中,这是一个挑战。在这些情况下,该过程是完全重建节点,就好像它从未成为集群的一部分:

    1. 彻底擦除data/commitlog/saved_caches/的所有内容。
    2. 如果该节点被列为种子节点,则从其种子列表中删除该节点的 IP。
    3. Replace the node with itself 使用 replace_address 标志。

    干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      相关资源
      最近更新 更多