单个节点集群的{Cassandra轻量级事务失败

时间:2017-01-27 21:23:30

标签: cassandra transactions cql

我有一个单节点Cassandra集群用于简单的开发活动。 所有用法都正常但是如果我尝试执行LWT,则查询失败,并显示一条消息,表明没有足够的主机可用。

如果配置了更多主机,这是有道理的,但是如果所有主机都可用,则为1,那么它应该成功。

CQLSH中的错误是NoHostAvailable。 无论一致性水平如何,使用C# driver from Datastax,我尝试了几个,错误是:

Not enough replicas available for query at consistency Quorum (2 required but only 1 alive)

有趣的是,如果我只是删除" IF NOT EXISTS"从CQL开始,查询成功。

如果群集中有单个节点,是否应该使用Paxos?

Cassandra版本:

 [cqlsh 5.0.1 | Cassandra 3.0.11.1485 | CQL spec 3.4.0 | Native protocol v4]

KEYSPACE:

CREATE KEYSPACE "XYZ" WITH replication = {'class': 'NetworkTopologyStrategy', 'Cassandra': '1', 'Solr': '1'}  AND durable_writes = true;

Nodetool ring:

    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

1 个答案:

答案 0 :(得分:1)

看起来数据中心Solr中的节点已关闭或无法访问。当你只说Quorum而不是本地仲裁时,它实际上将根据你描述的内容转到另一个节点。