当一个节点关闭时,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' 节点上。更新开始照常工作。该节点似乎无法注册另一个节点已关闭。
好的,问题是服务器的时间不同步。匹配时间查询后运行就好了。
第一次 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' 节点上。更新开始照常工作。该节点似乎无法注册另一个节点已关闭。
好的,问题是服务器的时间不同步。匹配时间查询后运行就好了。