【发布时间】:2015-09-17 07:13:11
【问题描述】:
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 repair 在“up”节点上运行。更新开始照常工作。似乎该节点无法注册另一个节点已关闭。
【问题讨论】:
标签: cassandra replication failover nodetool