Нужны некоторые разъяснения по запуску ремонта Cassandra nodetool
Поэтому у нас возникли проблемы с балансировкой нашей рабочей нагрузки в нашем текущем кластере, в основном из-за бюджетных ограничений и невозможности добавить больше узлов в это время. До недавнего времени частое отключение узла происходило часто, поэтому я часто выполнял восстановление nodetool. В последнее время кластер стал более стабильным, и эти сбитые узлы не происходят регулярно, поэтому на прошлых выходных я создал задания cron для восстановления nodetool -pr на каждом узле, который будет запускаться еженедельно. Значение gc_grace по-прежнему составляет 10 дней по умолчанию, а максимальные значения по умолчанию - 3 часа.
Мои вопросы:
- Если мы потеряем узел более чем на 3 часа, что именно произойдет с подсказками? Это / они больше не существуют?
- Если мы потеряли узел дольше, чем на 3 часа, но по какой-то причине не осознали, что узел так долго не работал, что произойдет, если будет запущено восстановление -tool-утилиты node -pr, а не полное восстановление на сбойном узле?
- Как бы вы решили проблему с вопроса 2, если это действительно так?
- Есть ли способ проверить, что все узлы значительно исправны / отремонтированы?
Этого еще не произошло (по крайней мере, я так не думаю), но я пытаюсь планировать заранее для худшего сценария, так как стабильность нашего кластера может или не может потеряться в долгосрочной перспективе, поэтому я предпочел бы быть готовым, как я могу Можно.
1 ответ
1) Если мы потеряем узел более чем на 3 часа, что именно произойдет с подсказками? Это / они больше не существуют?
Да, верно, ваши подсказки будут удалены (захоронены), и они уйдут через обычный процесс уплотнения. Вы можете увидеть это сами, просто выберите из system.hints
Таблица.
Проверьте наши документы и сообщение в блоге Джонатана на HH.
2) Если мы потеряли узел дольше, чем на 3 часа, но по какой-то причине не поняли, что узел так долго не работал, что произойдет, если будет запущено восстановление -totool для узла -pr, а не полное восстановление на сбойном узле?
В течение периода между восстановлением этого узла и текущим ремонтом вы можете сохранять устаревшие данные.
-pr
означает, что вы просто ремонтируете основные диапазоны на этой машине. Если вы выполняете ремонт с помощью -pr в вашем кластере, вы все равно будете восстанавливать все.
Вместо того, чтобы использовать chron, я рекомендую вам попробовать сервис по ремонту OpsCenter, который автоматизирует этот процесс.
3) Как бы вы решили проблему (и) из вопроса 2, если это действительно так?
Ремонт вернет вас к исходному уровню полной согласованности, поэтому вы должны запускать его еженедельно (или в 4) Есть ли способ проверить, что все узлы значительно исправны / отремонтированы? Единственный способ - построить деревья Меркель, что и делает ремонт. Вы также можете починить, если обнаружите несоответствие. Нет способа просто сравнить без ремонта. ПРИМЕЧАНИЕ: приятные подсказки улучшений, которые появятся в 3.0, прочитайте этот пост Алексея: http://www.datastax.com/dev/blog/whats-coming-to-cassandra-in-3-0-improved-hint-storage-and-delivery