如果所有本地副本都已启动,CONSISTENCY TWO 是否会受到低远程 DC 延迟的影响?

Will CONSISTENCY TWO be affected by low remote DC latency if all local replicas are up?

场景:我们在 aws 中有一个 DSE 5.0 集群集群,有 2 个数据中心,以及一个密钥空间,在澳大利亚有 3 个副本,在美国西海岸有 3 个副本。应用程序通过 dse java 驱动程序与 DSE 通信。

对于我们在悉尼的用户,如果我们使用 LOCAL_QUORUM,客户端中测得的响应时间低于 90 毫秒。这很好,但是如果 2 个副本太慢(发生在由分析集群引起的严重修复期间),我们就会崩溃。

如果我们使用 QUORUM,我们可以在本地丢失 2 个节点而不会宕机,但我们的响应时间始终超过 450 毫秒,因为每次读取都需要至少一个来自远程 DC 的响应。

我的问题是:如果我们所有的 3 个本地副本都健康且表现良好,使用 CL TWO(这对我们的案例来说已经足够)是否会遭受与 QUORUM 相同的延迟成本?

我们的最终目标是具有低延迟,同时仍然可以自动进行故障转移,并在本地出现故障时承担延迟成本。

如果有任何不同,我们在驱动程序中使用 DCAwareRoundRobin。

DCAwareRoundRobin policy provides round-robin queries over the node of the local data center. It also includes in the query plans returned a configurable number of hosts in the remote data centers, but those are always tried after the local nodes. In other words, this policy guarantees that no host in a remote data center will be queried unless no host in the local data center can be reached.

CONSISTENCY TWO returns 来自最近的两个副本的最新数据。

CONSISTENCY In Cassandra

要通过多 dc 实现在 Scylla/Cassandra 中获得最小延迟,您需要使用驱动程序的本地方面。 CL=Two 的挑战在于它会根据您的告密者配置从最近的副本提供最接近的响应。 据我了解,这意味着协调节点请求被发送到所有没有位置方面的副本。这意味着您需要为池塘两侧的出口流量付费。一次用于请求,一次用于来自所有副本的实际数据流量。