bra*_*orm 10 eventual-consistency cassandra-2.0
我正在阅读有关Cassandra中读取操作和一致性级别的这篇文章.根据这篇文章:
例如,在复制因子为3且读取一致性级别为QUORUM的群集中,将联系给定行的3个副本中的2个以完成读取请求.假设联系的副本具有不同版本的行,具有最新版本的副本将返回所请求的数据.在后台,检查第三个副本与前两个副本的一致性,如果需要,最新副本会向过期副本发出写入.
因此,即使使用Quorum的一致性级别,也不能保证您没有得到过时的读取.根据上面的段落,如果第三个副本具有最新的时间戳,则协同协调器已经返回了它所询问的两个副本的最新时间戳.但它不是最新的,因为第三个副本有最新的时间戳.
Car*_*ini 17
该QUORUM CL读取并不能保证你的数据的一致性.什么保证一致性是以下的不一致
(WRITE CL + READ CL)>复制因子
翻译保证数据一致性所需的最小W + R是
写全部+阅读一个
写一个+阅读所有
写的QUORUM + READ QUORUM
就像在帖子中所说的那样,如果你的复制因子为3并且你用CL1写了肯定1节点有新信息,而其他2可能有旧信息.询问cassandra CL QUORUM读取您可能从其他2个节点(旧数据)检索数据,并将信息返回给客户端.但由于协调器发送读取请求到所有节点(但只等待2发送回客户端响应之前),他会找出哪些节点拥有最新鲜的资讯,以及更新其他节点.
另外,在RF3情况下,如果你在Quorum中写入数据,至少2个节点将有新的信息 - 使用CL QUORUM执行读取将调用3个节点中的2个,在这种情况下,两个节点中的至少一个具有新鲜信息.
| 归档时间: |
|
| 查看次数: |
7991 次 |
| 最近记录: |