【问题标题】:Cross-datacenter sync after failure失败后的跨数据中心同步
【发布时间】:2019-08-01 19:50:30
【问题描述】:

谁能解释一下在这些情况下会发生什么,特别是为什么在第二种情况下数据永远不会同步。

简介:

  • 2 个 DC,具有 NetworkTopologyStrategy {DC-1 : 3, DC-2: 3} 的键空间
  • 所有写入和读取都使用 CL = LOCAL_QUORUM
  • 'write x to dc-2' 表示我使用 cqlsh 连接到 DC-2 中的一些 cassandra 实例并执行一些写入操作。
  • 'dc-1 dies' 表示所有 cassandra 实例都已终止(kubectl delete pod)

场景 1 - 我理解

  1. DC-1 死亡。
  2. 将 x 写入 DC-2
  3. DC-1 复活
  4. 在 DC-1 上读取几秒钟后会返回正确结果

这是想要的行为 - 数据最终是同步的


场景 2

  1. DC-1 死亡。
  2. 将 x 写入 DC-2
  3. DC-2 死亡
  4. DC-1 复活
  5. 在 DC-1 上读取会返回过时数据
  6. DC-2 复活
  7. 在 DC-1 上读取会在很长一段时间后返回陈旧数据

在这种情况下,数据是否会再次在整个 DC 中同步?

【问题讨论】:

    标签: database database-design cassandra


    【解决方案1】:

    对于这两种情况,您都需要在两个 DC 上的每个节点上运行 nodetool repair。但是 cassandra 节点存储特定时间的提示,默认为 3 小时。修复确保 cassandra 集群上数据的一致性。

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多