代码之家  ›  专栏  ›  技术社区  ›  Haris Farooqui

在一致性序列号上没有足够的副本可供查询(需要2个,但只有1个活动副本)

  •  2
  • Haris Farooqui  · 技术社区  · 6 年前

    专家,

     - Replication factor of 2
     - Consistency level ONE
     - Driver consistency level SERIAL
     - SimpleStrategy
     - GossipingPropertyFileSnitch
    

    使用此配置,如果我关闭一个节点,将得到以下错误:

    Not enough replica available for query at consistency SERIAL (2 required but only 1 alive)
    

    数据均匀地分布在所有节点上,nodetool状态正确地表明一个节点在运行的两个cassandra节点上关闭

    对于一致性1和2节点ups,为什么它要求两个副本节点都启动???

    我还读到串行驱动器一致性wrt WRITE failures:

    • CQL查询配置的所有一致性级别
    • 驱动程序配置的串行一致性级别

    如果将复制因子设置为3,则此操作有效。但我不认为有必要这么做。

    我是不是丢了什么东西?

    1 回复  |  直到 6 年前
        1
  •  4
  •   JayK    6 年前

    你已经在卡桑德拉找到了帕克索斯协议的一个秘密宝藏。在引擎盖下,Paxos的工作方式是 -就像它调用的一致性级别。

    请注意,它抱怨的是错误消息中的串行一致性级别,而不是您设置的一致性级别。LWT忽略在大多数情况下设置的正常一致性级别。它遵循串行或本地串行一致性级别,该级别几乎直接映射到 或者 本地仲裁 节点数。