ResponseError: Not enough replicas available for query at consistency SERIAL (2 required but only 1 alive)
ResponseError: Not enough replicas available for query at consistency SERIAL (2 required but only 1 alive)
我是Cassandra的新手,目前遇到一个问题,我的cassandra设置如下,
- 1 个数据中心,1 个集群
- 3 个节点。
- 简单策略
- 持久写入:正确
- 复制因子:创建键空间时为 2。
- 使用 IF NOT EXISTS 将数据插入 table.
- 种子节点:2个
然后我关闭了一个种子节点,我得到了以下错误:
ResponseError:没有足够的副本可用于一致性 SERIAL 查询(需要 2 个,但只有 1 个有效)
根据理解,一致性序列等同于 QUORUM.You 在 3 节点集群中具有 RF=2,因此 Cassandra 中的数据基于哈希插入。因此,当您将数据插入集群时,数据可能会插入到两个种子 nodes.So 上,当您在一个种子节点关闭的情况下检索数据时,您可能会收到此错误,因为集群未达到所需的一致性级别。
详情请参考 link。
https://docs.datastax.com/en/ddac/doc/datastax_enterprise/dbInternals/dbIntConfigSerialConsistency.html
这很正常,SERIAL 需要一个具有法定数量副本的 Paxos 事务。对于 RF 2,法定人数为 2; iow,您不能容忍任何节点向下写入 SERIAL 到具有 RF 2 的密钥空间。
经验法则:不要使用 RF 2,它没用。您的法定人数是:(2/2)+1 = 2,但对于 RF 3,它是相同的法定人数。因此,您应该始终更喜欢 RF 3。如果将密钥空间更改为 RF 3,即使一个副本已关闭,您的应用程序也能够以 SERIAL 写入。
我是Cassandra的新手,目前遇到一个问题,我的cassandra设置如下,
- 1 个数据中心,1 个集群
- 3 个节点。
- 简单策略
- 持久写入:正确
- 复制因子:创建键空间时为 2。
- 使用 IF NOT EXISTS 将数据插入 table.
- 种子节点:2个
然后我关闭了一个种子节点,我得到了以下错误:
ResponseError:没有足够的副本可用于一致性 SERIAL 查询(需要 2 个,但只有 1 个有效)
根据理解,一致性序列等同于 QUORUM.You 在 3 节点集群中具有 RF=2,因此 Cassandra 中的数据基于哈希插入。因此,当您将数据插入集群时,数据可能会插入到两个种子 nodes.So 上,当您在一个种子节点关闭的情况下检索数据时,您可能会收到此错误,因为集群未达到所需的一致性级别。 详情请参考 link。 https://docs.datastax.com/en/ddac/doc/datastax_enterprise/dbInternals/dbIntConfigSerialConsistency.html
这很正常,SERIAL 需要一个具有法定数量副本的 Paxos 事务。对于 RF 2,法定人数为 2; iow,您不能容忍任何节点向下写入 SERIAL 到具有 RF 2 的密钥空间。
经验法则:不要使用 RF 2,它没用。您的法定人数是:(2/2)+1 = 2,但对于 RF 3,它是相同的法定人数。因此,您应该始终更喜欢 RF 3。如果将密钥空间更改为 RF 3,即使一个副本已关闭,您的应用程序也能够以 SERIAL 写入。