【问题标题】:Difference between consistency level and replication factor in cassandra?cassandra中一致性级别和复制因子之间的区别?
【发布时间】:2018-07-01 02:49:43
【问题描述】:

我是 cassandra 的新手,我想了解一致性级别和复制因子之间的细微差别。

场景:如果我的复制因子为 2,一致性级别为 3,写操作将如何执行?当一致性级别设置为 3 时,表示结果将在写入 3 个节点后向客户端确认。如果数据被写入 3 个节点,那么它给我的复制因子是 3 而不是 2..?在这种情况下我们是否牺牲了复制因子?

谁能解释一下我的理解哪里错了?

谢谢!

【问题讨论】:

    标签: cassandra cassandra-3.0 consistency replication-factor


    【解决方案1】:

    复制因子:应该有多少节点保存此键空间的数据。

    一致性级别:需要多少节点响应协调节点才能使请求成功。

    因此,您不能仅仅因为您不能期望比拥有数据的节点数量更多的节点来响应请求,而使一致性级别高于复制因子。

    以下是一些参考资料:

    【讨论】:

      【解决方案2】:

      你会得到一个错误:无法达到一致性级别三。

      您可以进一步阅读here

      【讨论】:

      • 如果集群中的节点数大于4,则不会报错。
      【解决方案3】:

      一致性级别有两种类型,写一致性和读一致性。一致性级别可以是一、二、三或法定人数。如果是法定人数,则至少有一半的节点应该可用于操作。否则(对于一、二、三),名称本身会为您提供定义。

      复制因子是您计划在集群中维护的副本数。如果策略很简单,您将只有一个复制因子。如果您有网络拓扑策略并且使用多 dc 集群,那么您必须为每个数据中心设置复制因子。

      在您的场景中,如果您的 RF 为 2,CL 为 3,它将起作用(我假设集群中有 3 个以上的节点,并且至少有一个种子节点)。在这种情况下,它会检查三个节点是否正常接收数据,如果满足CL,则将两个副本写入两个节点。

      第二个问题

      当一致性级别设置为 3 时,表示结果将是 写入 3 个节点后向客户端确认。如果数据写入 3 个节点,那么它给我的复制因子是 3 而不是 2..?

      据我了解cassandra,不会承认cassandra。它只需要满足 CL,并且关于新数据确认的节点数量将等于 RF。 所以,牺牲 RF 是毫无疑问的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-26
        • 2018-12-24
        • 2015-09-25
        • 2017-06-14
        • 2018-06-13
        • 2016-07-05
        • 1970-01-01
        • 2017-01-09
        相关资源
        最近更新 更多