增加Cassandra复制因子如何提高一致性

时间:2013-10-11 01:13:27

标签: cassandra replication consistency

我正在阅读“Cassandra The Definitive Guide”,第46页有关复制因子的说法:

  

“复制因素基本上允许您决定您的数量   想要付出代价来获得更多的一致性。那就是你的   读写数据的一致性水平是基于   复制因子“

现在告诉我这个消息。如果复制增加,它是直观的,它提高了可用性,并取决于集群的拓扑结构的分区容差。但是为什么作者说它增加了一致性。我认为恰恰相反。您必须通过将更新传播到不同节点上的每个副本来花费额外的精力来确保持久数据的一致状态。复制品越多,保持一致性就越困难。为什么作者说完全相反?

赞赏所有投入。

2 个答案:

答案 0 :(得分:0)

一致性级别指定在返回结果之前必须响应的副本数。请参阅documentation

因此,如果您使用Quorum或更高的一致性级别,复制因子越高,在返回结果之前需要响应的节点就越多。

答案 1 :(得分:0)

复制因子描述您的数据存在多少个副本。一致性级别描述了客户端看到的行为。也许有更好的方法将它们分类。

例如,您可以将复制因子设置为2。写入时,假设有足够的节点,将始终存储两个副本。当一个节点发生故障时,对该节点的写入将被隐藏并在其恢复时写入,除非该节点的下降时间足够长以至于Cassandra认为它永久消失了。

例如,具有2个节点,复制因子为1,读取一致性= 1,写入一致性= 1:

您的读数是一致的 您可以在没有节点丢失的情况下幸免。 您实际上每次都是从1个节点读取。 您实际上每次都在写入1个节点。 每个节点保存您数据的50%。

有关更多信息:strsep