Кассандра - избегайте очистки nodetool

Если мы добавили новые узлы в кольцо C *, нужно ли нам запускать «очистку nodetool», чтобы избавиться от данных, которые теперь были назначены где-то еще? Или это все равно произойдет при обычном уплотнении? Во время обычного сжатия C * удаляет данные, которые больше не принадлежат этому узлу, или для этого нужно запустить «очистку nodetoool»? Спрашивает, потому что «очистка» длится вечно и приводит к сбою узла до завершения.

Если нам нужно запустить «очистку nodetool», есть ли способ узнать, какие узлы теперь имеют данные, которыми они больше не должны владеть? (т.е. данные, которые теперь принадлежат новым узлам, но все еще присутствуют на старых узлах, потому что их никто не удалил. Это данные, которые удалит "очистка nodetool".) У нас есть RF = 3 и два центра обработки данных, каждый из который имеет полную копию данных. Я предполагаю, что нам нужно запустить очистку на всех узлах в центре обработки данных, где мы добавили узлы, потому что каждая строка на новом узле раньше была на другом узле (первичном), плюс две копии (реплики) на двух других узлах.


person radumanolescu    schedule 03.07.2014    source источник
comment
Очистка nodetool только что вызвала потерю 25+ миллионов строк в моей настройке. Согласно документации, я ждал, пока не будут запущены новые узлы (UN), но в документации не упоминаются схемы, которые необходимо синхронизировать. Оказывается, nodetool describecluster показал проблему, при которой схемы не были синхронизированы, но узлы работали в обычном режиме UN. Так что, не зная этого, я запустил nodetool cleanup. Через 30 минут он закончил разрушать работу более 20 дней.   -  person Jose Fonseca    schedule 13.11.2016


Ответы (1)


Если вы используете Apache Cassandra 1.2 или новее, cleanup проверяет метаданные файлов, чтобы делать что-то только в случае необходимости. Таким образом, вы можете просто запустить его на каждом узле, и только узлы с дополнительными данными будут что-то делать. Данные не будут удалены во время обычного процесса уплотнения, вы должны вызвать очистку, чтобы удалить их.

person Zanson    schedule 04.07.2014