单节点集群的 Cassandra 轻量级事务失败
Cassandra light weight transactions are failing for a single node cluster
我有一个用于简单开发活动的单节点 Cassandra 集群。
所有使用都正常,但是如果我尝试执行 LWT,则查询失败并显示一条消息,指示没有足够的主机可用。
如果配置了更多主机,这是有意义的,但是如果所有主机都可用,即 1,那么应该会成功。
CQLSH 中的错误是 NoHostAvailable。
使用C# driver from Datastax出现不管一致性级别,我试了好几个,错误是:
Not enough replicas available for query at consistency Quorum (2 required but only 1 alive)
有趣的是,如果我只是从 CQL 中删除 "IF NOT EXISTS",那么查询就会成功。
如果集群中只有一个节点,是否还要使用 Paxos?
Cassandra 版本:
[cqlsh 5.0.1 | Cassandra 3.0.11.1485 | CQL spec 3.4.0 | Native protocol v4]
键空间:
CREATE KEYSPACE "XYZ" WITH replication = {'class': 'NetworkTopologyStrategy', 'Cassandra': '1', 'Solr': '1'} AND durable_writes = true;
节点工具环:
administrator@cassandra-dev01:~$ nodetool ring
Datacenter: Cassandra
==========
Address Rack Status State Load Owns Token
10.10.98.200 rack1 Up Normal 106.92 GB ? -8300708032273586829
Datacenter: SearchGraphAnalytics
==========
Address Rack Status State Load Owns Token
10.10.98.201 rack1 Up Normal 13.79 MB ? 4478178638510484591
数据中心 Solr 中的节点似乎已关闭或无法访问。当您只说法定人数而不是本地法定人数时,它实际上会根据您的描述转到另一个节点。
我有一个用于简单开发活动的单节点 Cassandra 集群。 所有使用都正常,但是如果我尝试执行 LWT,则查询失败并显示一条消息,指示没有足够的主机可用。
如果配置了更多主机,这是有意义的,但是如果所有主机都可用,即 1,那么应该会成功。
CQLSH 中的错误是 NoHostAvailable。 使用C# driver from Datastax出现不管一致性级别,我试了好几个,错误是:
Not enough replicas available for query at consistency Quorum (2 required but only 1 alive)
有趣的是,如果我只是从 CQL 中删除 "IF NOT EXISTS",那么查询就会成功。
如果集群中只有一个节点,是否还要使用 Paxos?
Cassandra 版本:
[cqlsh 5.0.1 | Cassandra 3.0.11.1485 | CQL spec 3.4.0 | Native protocol v4]
键空间:
CREATE KEYSPACE "XYZ" WITH replication = {'class': 'NetworkTopologyStrategy', 'Cassandra': '1', 'Solr': '1'} AND durable_writes = true;
节点工具环:
administrator@cassandra-dev01:~$ nodetool ring
Datacenter: Cassandra
==========
Address Rack Status State Load Owns Token
10.10.98.200 rack1 Up Normal 106.92 GB ? -8300708032273586829
Datacenter: SearchGraphAnalytics
==========
Address Rack Status State Load Owns Token
10.10.98.201 rack1 Up Normal 13.79 MB ? 4478178638510484591
数据中心 Solr 中的节点似乎已关闭或无法访问。当您只说法定人数而不是本地法定人数时,它实际上会根据您的描述转到另一个节点。