Первый пользователь 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 выполняется на «верхнем» узле. Обновления начинают работать как обычно. Похоже, что узел не может зарегистрировать, что другой узел не работает.