2015-02-25 3 views
2

Таким образом, у нас возникли проблемы с балансировкой нашей рабочей нагрузки на нашем текущем кластере, главным образом из-за бюджетных ограничений и невозможности добавления большего количества узлов в это время. До недавнего времени, когда узел уходил в ночное время, это происходило часто, поэтому я часто проводил ремонт nodetool. В последнее время кластер стал более стабильным, и эти сбитые узлы не происходят регулярно, поэтому в минувшие выходные я создал задания cron для ремонта nodetool -pr на каждом узле, который будет запускаться еженедельно. Gc_grace по умолчанию по умолчанию - 10 дней, а максимальные подсказки по умолчанию - 3 часа.Нужно уточнить, как работает ремонт Cassandra nodetool.

Мои вопросы:

  1. Если мы потеряем узел более чем на 3 часа, что именно происходит с подсказкой/с? Разве это/они больше не существуют?
  2. Если мы потеряли узел дольше, чем 3 часа, но по какой-то причине не понимали, что узел был таким длинным, что произойдет, если ремонт nodetool -pr будет запущен, а не полный ремонт на сбитом узел?
  3. Как вы исправите проблему/вопрос из вопроса 2, если это действительно так?
  4. Есть ли способ проверить, что все узлы значительно согласованы/отремонтированы?

Это еще не произошло (по крайней мере, я так не думаю), но я пытаюсь планировать будущее для наихудшего сценария, так как стабильность нашего кластера может или не может быть потеряна долговременно, поэтому я бы скорее подготовитесь, как я могу.

ответ

2

1) Если мы потеряем узел более 3 часов, что именно происходит с подсказками? Разве это/они больше не существуют?

Да, это правильно, ваши подсказки будут удалены (уничтожены), и они исчезнут через обычный процесс уплотнения. Вы можете увидеть это сами, просто выберите из таблицы system.hints.

Ознакомьтесь с нашими docs и Jonathan's blog post on HH.

2) Если мы потеряли узел дольше, чем 3 часа, но по какой-то причине не понимал, что узел был вниз, что долго, что будет происходить если ремонт nodetool -pr выполняется довольно чем полный ремонт на удаленном узле ?

В течение периода между этим узлом, возвращающимся назад и вашим текущим ремонтом, вы можете сохранить устаревшие данные.

-pr означает, что вы просто ремонтируете основные диапазоны на этой машине. Если вы выполняете ремонт с -pr по всему кластеру, вы все равно будете ремонтировать все.

Вместо использования chron, я рекомендую вам попробовать OpsCenter repair service, который автоматизирует этот процесс.

3) Как вы исправите проблему/вопрос из вопроса 2, если это действительно корпус?

Ремонт вернет вас к базовой линии полной согласованности, поэтому вы должны запускать ее еженедельно (или в < gc_grace).

4) Есть ли способ проверить, что все узлы значительно согласованы/отремонтированы?

Только дорога - это построить Деревья Меркель, что и делает ремонт. Вы также можете отремонтировать, как только найдете непоследовательность. Невозможно просто сравнить, не ремонтируя.

ПРИМЕЧАНИЕ: улучшения Хорошие подсказки приходят в 3.0 проверить это сообщение от Алексея: http://www.datastax.com/dev/blog/whats-coming-to-cassandra-in-3-0-improved-hint-storage-and-delivery

Смежные вопросы