Несовместимые значения счетчиков между репликами в Кассандре - PullRequest
1 голос
/ 08 августа 2011

У меня есть кластер Cassandra с 3 компьютерами, использующий стратегию неосторожных размещений в стойке с коэффициентом репликации 2.

Семейство столбцов определяется следующим образом:

create column family UserGeneralStats  with  comparator = UTF8Type  and default_validation_class = CounterColumnType;

К сожалению, послеЧерез несколько дней использования я получил несколько противоречивых значений для счетчиков:

Запрос к реплике 1:

[default@StatsKeyspace] list UserGeneralStats['5261666978': '5261666978'];  
Using default limit of 100
-------------------
RowKey: 5261666978
=> (counter=bandwidth, value=96545030198)
=> (counter=downloads, value=1013)
=> (counter=previews, value=10304)

Запрос к реплике 2:

[default@StatsKeyspace] list UserGeneralStats['5261666978': '5261666978'];
Using default limit of 100
-------------------
RowKey: 5261666978
=> (counter=bandwidth, value=9140386229)
=> (counter=downloads, value=339)
=> (counter=previews, value=1321)

Какстандартный механизм восстановления чтения, похоже, не восстанавливает значения, которые я пытался вызвать антиэнтропийным восстановлением с помощью восстановления nodetool.Это не оказало никакого влияния на значения счетчика.

Проверка данных показала, что нижние значения счетчиков являются правильными, поэтому я подозреваю, что либо Cassandra (или Hector, который я использовал в качестве API для вызова Cassandra из Java) повторили некоторые приращения.

Есть какие-нибудь идеи, как восстановить данные и, возможно, предотвратить повторение ситуации?

1 Ответ

0 голосов
/ 08 августа 2011

Если ни RR, ни ремонт не исправят это, вероятно, это ошибка.

Пожалуйста, обновите до 0.8.3 (уже сегодня) и убедитесь, что он все еще присутствует в этой версии, тогда вы можете подать заявку на https://issues.apache.org/jira/browse/CASSANDRA.

...