1

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

“复制因子本质上允许您决定要在性能上支付多少以获得更高的一致性。也就是说,您读写数据的一致性级别是基于复制因子的”

现在对我来说这是新闻。如果增加复制,它会提高可用性,并且根据集群的拓扑结构,它的分区容限也很直观。但是为什么作者说它增加了一致性。我会认为它完全相反。您必须付出额外的努力,通过将更新传播到不同节点上的每个副本来确保持久数据的一致状态。所以副本越多,保持一致性就越困难。为什么作者说的完全相反?

所有输入表示赞赏。

4

2 回答 2

0

一致性级别指定在返回结果之前必须响应多少副本。请参阅文档

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

于 2013-10-11T01:22:14.587 回答
0

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

例如,您可以将复制因子设置为 2。当您写入时,将始终存储两个副本,假设有足够的节点启动。当一个节点关闭时,该节点的写入被隐藏起来,并在它恢复时写入,除非它关闭的时间足够长,以至于 Cassandra 认为它已经永远消失了。

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

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

更多信息:配置数据一致性

于 2019-02-20T20:47:24.980 回答