【发布时间】:2017-06-13 16:21:26
【问题描述】:
我有一个用于简单开发活动的单节点 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
【问题讨论】:
-
nodetool ring显示什么? -
我添加了信息。我不确定搜索节点是否算作 cassandra 节点,因为它有不同的用途。
标签: cassandra transactions cql