【发布时间】: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 - 我理解
- DC-1 死亡。
- 将 x 写入 DC-2
- DC-1 复活
- 在 DC-1 上读取几秒钟后会返回正确结果
这是想要的行为 - 数据最终是同步的
场景 2
- DC-1 死亡。
- 将 x 写入 DC-2
- DC-2 死亡
- DC-1 复活
- 在 DC-1 上读取会返回过时数据
- DC-2 复活
- 在 DC-1 上读取会在很长一段时间后返回陈旧数据
在这种情况下,数据是否会再次在整个 DC 中同步?
【问题讨论】:
标签: database database-design cassandra