Таблицы Cassandra, показавшие 0,0% восстановленных после полного ремонта - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть кластер C * 3.11 из 4 узлов, а RF равен 3. После того, как я запустил nodetool repair -full ks1 tb1, а в командной строке отображается

Starting repair command #18 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx), repairing ks1 with repair options (parallelism: parallel, primary range: false, incremental: false, job threads: 1, ColumnFami lies: [device], dataCenters: [], hosts: [], # of ranges: 404, pull repair: false)

И

[2018-01-01 01:25:57,730] Repair completed successfully [2018-01-01 01:25:57,734] Repair command #18 finished in 29 seconds

Итак, я полагаю, ремонт прошел успешно. Тем не менее, когда я проверяю nodetool tablestats ks1.tb1, командное окно показывает

Percent repaired: 0.0

В зависимости от таблиц результат может быть Percent repaired: 100.0 или Percent repaired: 70.0, и многие по-прежнему показывают Percent repaired: 0.0, хотя команда восстановления показывает, что исправлено успешно.

Что мне здесь не хватало?

1 Ответ

0 голосов
/ 10 сентября 2018

Метрика восстановленного процента предназначена для пошагового ремонта. При инкрементальном ремонте есть 2 набора sstables. Отремонтирован и не отремонтирован. Как только sstable будет отремонтирован, он будет перемещен в отремонтированный набор и больше не будет участвовать в будущем ремонте. Когда вы указываете --full, вы указываете не использовать инкрементное, а восстановление поддиапазона, которое все еще необходимо в некоторых ситуациях для восстановления всего набора данных в некотором диапазоне независимо от того, был ли он восстановлен ранее или нет. Пример сценария - сбой диска на 1 хосте в нелокальном контроллере домена, поэтому устраните неисправность, чтобы обновить данные из резервной копии, или оставьте один узел за окном с подсказкой и т.д.

Наличие двух наборов sstables связано с большими накладными расходами (блокировка sstables во время восстановления из-за уплотнений и антикомпакция, когда диапазоны разбивают sstable). Поэтому при выполнении неинкрементного ремонта sstables не помечаются, поскольку они избегают этих шагов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...