0

First time Cassandra user and obligatory issue. Cassandra is running in a 2 node cluster with replication factor=2 and row update fails when 1 node is down.

Keyspace is defined as below.

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

When the service on node 1 is stopped manually. Row updates stop working. See below

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"}}

Updating the row when node 1 is down

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

Column should be updated but behold

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"}}

If nodetool repair is run on the 'up' node. The updates start to work as usual. It seems like the node is failing to register that the other node is down.

4

1 回答 1

1

Ok the issue was, server's time was out of sync. After matching the time queries run fine.

于 2015-09-17T07:30:20.417 回答