只有一个Cassandra数据中心的{E44_QUORUM语义

时间:2015-10-22 09:58:37

标签: cassandra consistency

documentation for Cassandra consistency levels说明了EACH_QUORUM一致性级别:

  

必须将写入写入提交日志并在所有数据中心的法定数量的副本节点上进行记忆。用于多个数据中心集群......

只有一个数据中心时,EACH_QUORUM一致性级别的语义是什么?我可以想到两种可能性:

  • 术语" all"包括只存在一个的情况,因此EACH_QUORUM要求将写入写入唯一数据中心的法定数量的节点。
  • 当您拥有多个数据中心时,一致性级别仅供使用("在多个数据中心群集中使用"措辞是限制性的,不是描述性的),并且不得为当您只有一个数据中心时使用。在这种情况下,请改用QUORUM

1 个答案:

答案 0 :(得分:2)

经过一些实验,使用Cassandra 2.1.5和Datastax Java驱动程序2.1.5,我发现实现(如果不是预期的语义)就是只有当您拥有多个数据中心时,EACH_QUORUM一致性级别才有效。当只有一个数据中心时,Java驱动程序失败EACH_QUORUM写入,抛出UnavailableException,抱怨0个节点可用。使用QUORUM写入工作正常。

因此,如果您只有一个数据中心,请不要使用EACH_QUORUM一致性级别。请改用QUORUM