Методы проверки синхронизации узла Кассандры - PullRequest
9 голосов
/ 27 марта 2012

У меня есть кластер Cassandra с 3 узлами с коэффициентом репликации 2. Потому что один из узлов был заменен новым.И я использовал «восстановление nodetool», чтобы восстановить все пространства ключей.Но не знаю, как проверить, синхронизируются ли все пространства ключей.

Раньше только что обнаружил, что эта статья поможет, но немного. Проблема репликации данных Cassandra

Есть ли способ проверить пространства ключей с коэффициентом репликации> 1 в Cassandra?

Большое спасибо.

stephon

Ответы [ 2 ]

8 голосов
/ 28 марта 2012

Во-первых, если вы снова запустите восстановление nodetool и передается очень мало данных (при условии, что все узлы работали с момента последнего запуска), вы знаете, что данные почти идеально синхронизированы. Вы можете просмотреть журналы, чтобы увидеть цифры того, сколько данных передается во время этого процесса.

Во-вторых, вы можете проверить, что все узлы получают одинаковое количество записей, посмотрев количество записей с помощью nodetool cfstats. Обратите внимание, что значение счетчика записей сбрасывается при каждом перезапуске Cassandra, поэтому, если они не были перезапущены в одно и то же время, вам нужно будет увидеть, насколько быстро они увеличиваются с течением времени.

В заключение, если вы просто хотите провести выборочную проверку нескольких недавно обновленных значений, вы можете попробовать прочитать эти значения на уровне согласованности ОДИН. Если вы всегда получаете самую последнюю версию данных, вы будете знать, что реплики, скорее всего, синхронизированы.

Как общее примечание, репликация - такая укоренившаяся часть Кассандры, что вряд ли она сама по себе потерпит неудачу, если вы не заметите. Обычно узел будет уценен вскоре после начала проблем. Кроме того, я предполагаю, что вы пишете на уровне согласованности ОДИН или ЛЮБОЙ; с чем-то более высоким, вы точно знаете, что обе реплики получили запись.

1 голос
/ 26 декабря 2014

Один из способов проверки - использовать nodetool getendpoints.Передайте несколько случайных ключей и проверьте, какие конечные точки удерживают этот ключ.Это должно показать, размещены ли реплики в двух узлах или нет.

...