LWT和Cassandra中的一致性

时间:2018-10-31 02:52:28

标签: apache cassandra cassandra-3.0 lwt

对我来说似乎是个虫子

1)我创建了一个复制因子为'3'的键空间

 如果不存在,则创建键盘空间复制测试与复制= {'class':'SimpleStrategy','replication_factor':3};
 

注意:这是一个单节点群集,但我仍将复制因子设置为3,以便稍后将新节点添加到群集中

2)我将一致性级别设置为ONE

  cqlsh:replicationtest>一致性一
 

3)我创建了一个“测试台”

 如果不存在则创建表testtable(“ partitionId”文本,“ name”文本,“ value”文本,主键(“ partitionId”,“ name”)));
 

4)现在,我尝试了简单的INSERT查询

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

按预期工作,因为一致性级别为1

5)现在,我尝试使用LWT(如果不存在)进行INSERT查询

  INSERT INTO testtable(“ partitionId”,“ name”,“ value”)VALUES('testtable','testnameanew','testvaluenew')如果不存在;
 

现在无法使用 NoHostAvailable: 错误

有人可以解释如何解决此问题吗?如何执行一致性为1的LWT?

1 个答案:

答案 0 :(得分:1)

Lwt在引擎盖下使用串行一致电平,并且当RF为3时,它期望s 2个节点向上。因此,操作按预期失败。阅读this了解更多信息。