Cassandra:LOCAL_QUORUM vs QUORUM,当所有 datacenter/servers 物理上都是本地人时,在同一个 10gbps 网络上

Cassandra : LOCAL_QUORUM vs QUORUM, when all datacenter/servers are physically locals, on the same 10gbps network

我有两个 Cassandra 数据中心,但所有服务器都在同一栋楼里,与 10 gbps 网络相连。

我不打算在其他位置安装服务器。

每个数据中心的 RF 为 2。

我需要保证强一致性,所以我打算使用QUORUM。

问题: 使用 LOCAL_QUORUM 而不是 QUORUM 对我有什么好处吗?

谢谢

Are there any advantages for me of using LOCAL_QUORUM instead of QUORUM?

这里最重要的考虑是,对于 2 个 RF == 2 的 DC,QUORUMLOCAL_QUORUM 等同于不同的值(要联系的副本数)。

  • LOCAL_QUORUM == 2
  • QUORUM == 3

所以我看到 LOCAL_QUORUM 优势 是应用程序等待更少的副本。每个 DC 有 2 个 DC 和 2 个副本,操作@ LOCAL_QUORUM 将等待来自 2 个副本的响应。

QUORUM 操作会考虑集群中的所有 4 个副本,并等待来自 3 个副本的响应。因此 LOCAL_QUORUM 可能会有轻微的性能优势(等待更少的副本响应) .

缺点是,在这种情况下使用 LOCAL_QUORUM 将无法容忍节点停机。因此,如果单个节点崩溃或变得无响应,那么所有操作都将失败,直到该节点复活。

正如 Aaron 所提到的,在此配置中 local_quorum 没有容错能力,因此我认为值得考虑为每个 DC 添加一个新节点。

通过这样做,您将保持 local_quorum 为 2(相对于 4 的新法定人数),但会变得容错并在每一侧的节点出现故障时生存。