gpt4 book ai didi

cassandra-2.0 - 在 Cassandra 中以 Quorum 的一致性级别读取操作?

转载 作者:行者123 更新时间:2023-12-04 03:11:30 28 4
gpt4 key购买 nike

我正在读这个 post关于 Cassandra 中的读取操作和一致性级别。根据这篇文章:

例如,在复制因子为 3 且读取一致性级别为 QUORUM 的集群中,联系给定行的 3 个副本中的 2 个以完成读取请求。假设联系的副本具有不同版本的行,具有最新版本的副本将返回请求的数据。在后台,检查第三个副本与前两个副本的一致性,如果需要,最近的副本会向过时的副本发出写入。

因此,即使具有 Quorum 的一致性级别,也不能保证您不会获得过时的读取。
根据上一段,如果第三个副本有最新的时间戳,则协调器已经返回了它查询的两个副本的最新时间戳。但它不是最新的,因为第三个副本具有最新的时间戳。

最佳答案

法定人数 CL 读做 不是 保证您数据的一致性。保证一致性的是以下不等式

(WRITE CL + READ CL) > REPLICATION FACTOR



转换保证数据一致性所需的最小 W+R 是

WRITE ALL + READ ONE
WRITE ONE + READ ALL
WRITE QUORUM + READ QUORUM



就像帖子中所说的那样,如果您的复制因子为 3 并且您使用 CL1 编写,那么肯定有 1 个节点具有新信息,而其他 2 个可能具有旧信息。向 cassandra 询问 CL QUORUM 读取,您可能会从其他 2 个节点(旧数据)检索数据,并将信息返回给客户端。但是由于协调器向所有节点发送了读取请求(但只等待了 2 次,然后才将响应发送回客户端),他会找出哪个节点的信息最新鲜,并更新其他节点。

其他,在 RF3 情况下,如果您在 Quorum 中写入数据,则至少有 2 个节点将具有新鲜信息——使用 CL QUORUM 执行读取将调用 3 个节点中的 2 个,在这种情况下,至少两个节点中的一个具有新鲜信息信息。

关于cassandra-2.0 - 在 Cassandra 中以 Quorum 的一致性级别读取操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043208/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com