Cassandra的lwt和consisteny

qvsjd97n  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(253)

这似乎是我的问题,
1) 我创建了一个复制因子为“3”的键空间

CREATE KEYSPACE IF NOT EXISTS replicationtest WITH replication = {'class':'SimpleStrategy','replication_factor' : 3};

注意:这是一个单节点集群,我仍然将复制因子保留为3,以便稍后向集群添加新节点
2) 我将一致性级别设置为1

cqlsh:replicationtest> CONSISTENCY ONE

3) 我创建了一个“testtable”

CREATE TABLE IF NOT EXISTS testtable("partitionId" text, "name" text, "value" text, primary key ("partitionId","name"));

4) 现在我尝试了简单的插入查询

INSERT INTO testtable("partitionId", "name", "value") VALUES ('testtable','testname', 'testvalue');

由于一致性级别是1级,所以这是按预期工作的
5) 现在我尝试用lwt插入查询(如果不存在)

INSERT INTO testtable("partitionId", "name", "value") VALUES ('testtable','testnameanew', 'testvaluenew') IF NOT EXISTS;

现在它失败了,没有主机available:error
有人能解释一下怎么解决这个问题吗?如何以一致性1执行此lwt?

ozxc1zmp

ozxc1zmp1#

lwt在引擎盖下使用串行电平,由于rf为3,它期望S2节点向上。因此,操作如预期的那样失败。请阅读此文以了解更多信息。

相关问题