Cassandra node - rebuild v.s. ремонт - программирование
Подтвердить что ты не робот

Cassandra node - rebuild v.s. ремонт

В чем разница между:

a) nodetool rebuild

b) nodetool repair [-pr]

Другими словами, что именно делают команды?

4b9b3361

Ответ 1

nodetool rebuild: похож на процесс начальной загрузки (когда вы добавляете новый кластер node в кластер), но для центра обработки данных. Процесс здесь в основном представляет собой потоки от уже живых узлов к новым узлам (новые пустые). Таким образом, после определения диапазонов ключей для узлов, которые очень быстры, остальное можно рассматривать как операцию копирования.

nodetool repair -pr: не является операцией копирования, ремонтируемый node не пуст, он уже содержит данные, но если коэффициент репликации больше 1, данные должны быть сопоставлены с данными остальной части реплики, и если есть разница, это будет исправлено. Этот процесс включает в себя много потоков, но это не потоковая передача данных: восстанавливаемый node запрашивает дерево merkle (в основном дерево хэшей), чтобы проверить, является ли информация обоим узлам одинаковой или нет, если не она запрашивает полный поток раздела данных, который имеет какую-либо разницу (так что все реплики имеют одинаковые данные). Потоковая передача этих хэшей, если это происходит быстрее, чем передача всей информации перед проверкой, работает в предположении, что большинство данных будут одинаковыми на обоих узлах, за исключением некоторых различий здесь и там. Этот процесс также удаляет надгробия, созданные при удалении из базы данных, определяя как новую "контрольную точку", после которой после удаления данных будут созданы новые надгробные плиты, но старые больше не будут использоваться.

Надеюсь, что это поможет!