当一个节点关闭时,Cassandra 无法更新行

Cassandra cannot update row when one node is down

第一次 Cassandra 用户和强制性问题。 Cassandra 运行 正在复制因子 = 2 的 2 节点集群中,当 1 个节点关闭时行更新失败。

键空间定义如下。

CREATE KEYSPACE call_completion_dataspace WITH replication = {'class':'NetworkTopologyStrategy',  'DC1': '2'};

手动停止节点1上的服务时。行更新停止工作。见下文

cqlsh>select * from requests where b_msisdn=1;
b_msisdn | request
       1 | {"321":{"a_party":"321","b_party":"1234","request_timestamp":"Aug 12, 2015 4:25:30 PM","request_type":"autocall","call_failed_scenario":"noasnswer","refId":"113365567757_68961c4"}}

节点 1 关闭时更新行

cqlsh>UPDATE call_completion_dataspace.callcompletionrequests SET request='"111"' WHERE b_msisdn=1; 
cqlsh>select * from call_completion_dataspace.callcompletionrequests where b_msisdn=1;             

专栏应该更新,但请注意

b_msisdn | request
       1 | {"321":{"a_party":"321","b_party":"1234","request_timestamp":"Aug 12, 2015 4:25:30 PM","request_type":"autocall","call_failed_scenario":"noasnswer","refId":"113365567757_68961c4"}}

如果 nodetool 修复是 运行 在 'up' 节点上。更新开始照常工作。该节点似乎无法注册另一个节点已关闭。

好的,问题是服务器的时间不同步。匹配时间查询后运行就好了。