Сжатие Кассандры против Восстановления против Очистки
После публикации вопроса и чтения этой и той статьи я все еще не понимаю взаимосвязи между этими тремя операциями.
- Cassandra уплотнения задач
- восстановление nodetool
- очистка nodetool
Можно ли выполнить задачу восстановления во время выполнения задачи сжатия или очистить во время выполнения задачи сжатия? Является ли очистка операцией, которая должна выполняться еженедельно в качестве ремонта? Почему ремонтная операция должна выполняться вручную, а это не относится к поведению Cassandra по умолчанию?
Каковы основные правила для поддержания работоспособного кластера?
1 ответ
cleanup
это сжатие, которое просто удаляет вещи за пределами диапазона токенов узлов. repair
имеет "Утверждение проверки" для построения дерева Merkle для сравнения с другими узлами, поэтому часть nodetool repair
будет иметь уплотнение.
Можно ли выполнить задачу восстановления во время выполнения задачи сжатия или очистить во время выполнения задачи сжатия?
Существует общий пул уплотнений для обычных уплотнений, ремонта, очистки, очистки и т. Д. Это concurrent_compactors
настройка в cassandra.yaml, которая по умолчанию сочетается с количеством ядер и каталогов данных: https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L572
Является ли очистка операцией, которая должна выполняться еженедельно в качестве ремонта?
нет, только после изменения топологии.
Почему ремонтная операция должна выполняться вручную, а это не относится к поведению Cassandra по умолчанию?
Это руководство, потому что его требования могут сильно отличаться от ваших данных и gc_grace
требования есть. https://issues.apache.org/jira/browse/CASSANDRA-10070 переносит его в Кассандру, хотя в будущем это будет происходить автоматически.
Каковы основные правила для поддержания работоспособного кластера?
Я бы (мнение) сказал:
- Регулярное резервное копирование (в зависимости от требований и допустимой потери данных - от еженедельных / ежедневных до постоянно с добавочными).
- Это относится как к "внутренним" ошибкам ("Оппс, я удалил клиента"), так и к отключениям. Даже при сильной репликации с несколькими постоянными дисками вам требуется минимальное резервное копирование.
- Убедиться, что восстановление завершено для всех таблиц, которые удалили хотя бы один раз за время gc_grace этих таблиц.
- Хранение метрик и журналов довольно важно, если вы хотите иметь возможность отлаживать проблемы.