小编Aeh*_*ham的帖子

对Cassandra中特定行的更新似乎丢失了

我正在试验一个4节点的Cassandra(1.2)集群,我刚刚在CentOS 6.4上设置4个虚拟机.首先,我创建了一个复制因子为3的密钥空间,并在其中创建了几个表,并用少量行填充每个表 - 所有表都使用Cqlsh.简单的INSERT,SELECT和UPDATE似乎工作正常.

然后我开始随机断开一些节点,以查看集群的功能.当其中两个节点处于脱机状态时,我运行了几个SELECT,返回了正确的结果.随后,我尝试更新现有行,根据"nodetool getendpoints"托管在脱机节点以及运行Cqlsh的本地节点上.将两个节点重新联机后,对更新的行运行SELECT 不会返回更新的数据值.我等了一会儿又尝试了SELECTing,但仍然保留了原始数据.我也尝试了以下内容,其中没有一个返回更新的数据:

  1. 重新运行UPDATE几次
  2. 更新同一行中的不同列 - 该字段未更新
  3. 重新启动群集中的所有四个节点

不同行中同一列的UPDATE工作正常,与上面的#2一起使我认为这是行数据的问题.

以下代码段显示SELECT在看似成功的UPDATE之前和之后返回原始数据:

cqlsh:demo> select email, active from users where email = 'john.doe@bti360.com';

email               | active
--------------------+--------
john.doe@bti360.com |   True

cqlsh:demo> update users set active = false where email = 'john.doe@bti360.com';

cqlsh:demo> select email, active from users where email = 'john.doe@bti360.com';

email               | active
--------------------+--------
john.doe@bti360.com |   True
Run Code Online (Sandbox Code Playgroud)

我是Cassandra的新手,所以我很可能会错过一些东西.任何建议或疑难解答提示(要检查的文件或要运行的命令),以帮助揭示这里发生的事情将不胜感激.

cassandra

1
推荐指数
1
解决办法
1396
查看次数

标签 统计

cassandra ×1