Cassandra与RF = 2和CL = 1

时间:2017-10-06 15:13:57

标签: cassandra lucene

我有一个RF = 2的设置,所有的读/写都是用CL = 1完成的。在我打开会话,写入条目,后端处理和再次阅读的地方很少。这主要是有效的,但有时读取返回Nil。我们怀疑来自协调器节点的读取进入的节点与Write完成的节点不同。我的理解是协调器节点将读取请求发送到两个副本节点并正确返回结果。

我们并不担心连续更新,因为大多数时候我们只需要对新创建的行进行即时一致性。我们确实不需要Quoram,而RF = 2主要是为了容忍HA丢失一个节点。任何关于如何实现RF = 2和CL = 1的立即一致性的指针都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

具有QUORUM的RF = 3将使您能够立即获得单节点丢失的能力。任何不到那么的东西,它都不可能保证它,因为总会有一个窗口,其中一个节点在其他节点之前看到变异。

R + W > N  to have a consistent read/write.
R (number of nodes needed for read) + W (number of nodes needed for write) > N (number of nodes with data, RF)

CL 1读/写且RF = 2你有1 + 1不是> 2.您可以在读取或写入时使用ALL,TWO或QUORUM,您将获得一致性(仅因为对于TWO和QUORUM,rf = 2),但是任何节点故障都会降低执行读取或写入的能力。

相关问题