Cassandra: Восстановление данныхВ силу того, что Cassandra, распределенная система с большим числом узлов. Время от времени в узлах кластера могут возникать расхождения в данных, полученнные из-за разных причин (используется режим записи "кворум" (quorum) или один из узлов становится недоступной и др.). Процесс восстановление данных (ремонт данных) служит для решения подобных проблем и является неотъемлемой частью регулярного процесса технического обслуживания кластера Cassandra. В Cassandra поддерживаются следующие виды процессов восстановления: Журнал хинтов. В случае, когда один из узлов становится недоступным для записи, узел координатор преобразует данные, которые должны быть переданы недоступному узлу в журнал хинтов. Как только узел становится доступным он получает журналы хинтов и проигрывает их, тем самым приводя данные к ожидаемому состоянию. Ограничение на максимальное время записи в журнал хинтов задается при помощи переменной max_hint_window_in_ms, значение которой по умолчанию равно 3 часам. Ремонт при чтении. В процессе запроса данных узел координатор запрашивает данные с нескольких узлов и анализирует полученные данные. Если координатор определяет, что данные на одном из узлов устарели, то он отправляет актуальное состояние данных узлу с устаревшими данными. Для использования этого режима таблица должна быть создана с опцией read_repair_chance. Ручное восстановление. Ручной восстановление подразумевает использование команды nodetool repair, которая используется для ремонта восстанавливаемых узлов кластера. Также эта команда является обязательной в процессе регулярного технического обслуживания кластера Cassandra. Процесс основан на построении дерева, в узлах которого хранятся хеши индивидуальных значений, а в листьях значения ключей записей. Процесс построения этого дерева достаточно ресурсоемкий в плане диска и памяти. После того как оно построено, его передают синхронизируемой ноде. После чего данные анализируются и наиболее свежие данные записываются на диск. В ряде случаев может быть более эффективна полная синхронизация вместо описанной выше инкрементальной (например, в процессе добавления новой ноды). Существует еще одна альтернатива команды nodetool repair - восстановление данных только за указанный период. За большей информацией можно обратиться к официальной документации. 06.03.2017 |
популярные тэги
наука
интересно
новости
технологии
история
go
golang
программирование
it
искусственный интеллект
путешествия
природа
космос
ai
базы данных
медицина
science
анализ текстов
ии
text mining
робототехника
авто
музыка
роботы
интернет
нейронные сети
robots
space
вокруг света
postgresql
алгоритмы
гитара
животные
оружие
google
nosql
авиация
здоровье
техника
auto
|