繁体   English   中英

卡桑德拉一致性失败

[英]Cassandra consistency fails

[更新]

先前的陈述很容易引起误解,因此我在这里进行详细说明:

我运行了一个测试,该测试通过PHP中的Thrift协议发送了查询,脚本如下所示:

for ($i=0; $i<100; $i++) {  
    $query = "update ns.table set value='before' where key='key$i';";  
    // randomly select a node and send query  
}  

for ($i=0; $i<100; $i++) {  
    $query = "update ns.table set value='after' where key='key$i';";  
    // randomly select a node and send query  
}  

该表开始为空,并且在测试之后,仅某些行包含值“ after”,而大多数行包含“ before”。

在整个测试过程中,我没有收到任何错误。 因此,第二个循环中的查询以某种方式静默失败。

所有查询均以一致性级别ALL发送,并且该表的复制因子为2。

我的cassandra版本是DSE 4.6.3,该群集共有39个节点。

[UPDATE2]

在两个循环之间进行睡眠(3秒钟)后,测试现在可以为我提供正确的结果,表中的所有行的值均为“ after”。

但这仍然令人困惑,因为对于一致性级别ALL,我希望所有查询都以事务方式进行。 无需睡眠功能。

同步节点的时钟后,问题已解决。

感谢@mshuler指出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM