Мой OpsCenter выдает мне результат «Ошибка» в службе производительности подсчета надгробий. Я прочитал эту статью и обнаружил, что вставка значения NULL
может быть случайной .
Поэтому я пытаюсь решить эту проблему, используя следующие процедуры:
Установите для столбца
NULL
таблицыchannels
иarticles
значение ''. И для проверки никаких вставок в эти две таблицы нет.Установите
gc_grace_seconds
в0
с помощью команд:alter table channels with gc_grace_seconds = 0 alter table articles with gc_grace_seconds = 0
Обрезать таблицу
bestpractice_results
в ключевом пространствеOpsCenter
.Перезапустите агентов и OpsCenter с помощью команд:
service datastax-agent restart service opscenterd restart
Но когда OpsCenter запускал обычную проверку производительности (каждую минуту), снова появлялась следующая информация «Ошибка». И количество надгробий не изменилось (т.е. 23552 и 1374)
А у меня вопрос:
- Как удалить эти надгробия, когда нет операций вставки в две таблицы? Нужен ли мне
repair
кластер?
Версия OpsCenter: 6.0.3 Версия Cassandra: 2.1.15.1423 Версия DataStax Enterprise: 4.8.10
nodetool -p portNumber compact keyspace channels
, но количество надгробий все еще не изменилось. я долженreboot
datastax ? - person feng1122   schedule 25.11.2016compact
для таблицыchannels
, я думаю, чтоcompact
- это концепция таблицы. Как запустить компакт для каждого узла? - person feng1122   schedule 25.11.2016-h
, чтобы указать хосты, на которых работают ваши узлы. - person Ralf   schedule 25.11.2016Cassandra will fully drop those tombstones when a compaction triggers, only after local_delete_time + gc_grace_seconds as defined on the table the data belongs to. Remember that all the nodes are supposed to have been repaired within gc_grace_seconds to ensure a correct distribution of the tombstones and prevent deleted data from reappearing as mentioned above.
, я сначала запускаюnodetool -h hosts repair
на каждом узле, а затем запускаюnodetool -p portNumber compact
на каждом узле, надгробная плита исчезнет, правильный ли порядок? - person feng1122   schedule 25.11.2016gc_grace_seconds
, кажется, что0
не является правильным значением, так какall the nodes are supposed to have been repaired within gc_grace_seconds
, я прав? - person feng1122   schedule 25.11.2016gc_grace_seconds = 0
опасна, если у вас более одного узла, так как вы рискуете воскресить удаленные данные в случае, если ваш кластер будет разбит на разделы из-за сбоев в сети или отдельные узлы не работают, а ваше пространство ключей настроено на избыточность данных. Но это был не ваш вопрос. Ваш вопрос был о том, как немедленно избавиться от надгробий. А если вы хотите сразу зачистить все надгробия, то установкаgc_grace_seconds = 0
обязательна. - person Ralf   schedule 25.11.2016