【问题标题】:Cassandra Cannot achieve consistency level SERIALCassandra 无法达到一致性级别 SERIAL
【发布时间】:2016-11-02 13:45:23
【问题描述】:

我最近发现,如果您在 Cassandra 中使用条件事务,那么它将默认为这些事务使用 SERIAL 一致性。

http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0

但是,我无法弄清楚如何设置我的复制因子和节点数量,以便条件事务即使在单个节点关闭的情况下也能成功。我希望复制因子为 2。

我已经尝试使用 1 和 2 的 replication_factor 和 5 节点集群。我需要更多节点吗?我缺少的地方有配置吗?我的键空间配置如下。我在 Cassandra 3.5 和 3.9 上遇到过这种情况。

CREATE KEYSPACE IF NOT EXISTS reptest WITH replication = {'class': 'SimpleStrategy', 'replication_factor':2};

【问题讨论】:

  • 可以尝试使用网络拓扑策略而不是简单策略吗?有一些问题

标签: cassandra database-replication consistency cassandra-3.0


【解决方案1】:

当涉及到必须确认操作的节点数量时,SERIAL 一致性级别对应于QUORUM。仍然允许使用 QUORUM 补偿单个死节点的最小复制因子将是 3(3 个节点中至少有 2 个活着)。

【讨论】:

  • 你能解释为什么复制因子 3 有效,而复制因子 2 无效吗?据我所知,它们都应该需要相同数量的节点来实现 quorom。
  • 如果 quorum 需要 2 个节点,但您的复制因子只有 2,那么它们都需要处于活动状态。在复制因子为 3 的情况下,一个节点可以停机以仍然满足 2 个节点的法定人数。
  • 对,但是如果我有一个复制因子为 2 的 3 节点集群,Cassandra 不应该容忍单个节点的丢失吗?
  • 如果您只在 3 个节点中的 2 个节点之间复制数据,则第 3 个节点无关紧要。
猜你喜欢
  • 2018-08-14
  • 2019-05-08
  • 2022-10-23
  • 2015-10-27
  • 1970-01-01
  • 2016-10-29
  • 2016-07-05
  • 2016-10-12
  • 2017-01-09
相关资源
最近更新 更多