2016-08-09 4 views
1

Использование nodetool status Я могу зачитать Load каждого узла. Добавление или удаление данных из таблицы должно иметь прямое влияние на это значение. Однако значение остается неизменным, независимо от того, сколько раз выполняется команда nodetool status.Состояние загрузки Cassandra не обновляется (состояние nodetool)

Cassandra documentation указывает, что значение Load составляет 90 секунд для обновления. Даже за несколько минут между запуском команды результат всегда неправильный. Единственный способ, которым я смог установить это значение, - перезапустить узел.

Я не считаю это актуальным, но я должен добавить, что я использую docker containers для создания кластера.

ответ

5

В documentation, что вы связаны, под Load он также говорит

Поскольку все SSTable файлы данные включены любые данные, которые не очищены, например, TTL-выдыхаемая ячейка или захоронены данные подсчитаны ,

Важно отметить, что при данных Cassandra deletes, данные помечаются надгробной плиты и не на самом деле не удаляются до уплотнения. Таким образом, нагрузка не сразу уменьшается. Вы можете force a major compaction с nodetool compact.

Вы также можете попробовать очистить память, если данные добавляются. Apache notes что

Cassandra пишет сначала записываются в CommitLog, а затем в структуре на-ColumnFamily называется Memtable. Когда Memtable заполнен, записывается на диск как SSTable.

Так что вам необходимо либо добавить больше данных, пока memtable не полон, или вы можете запустить nodetool flush (документально here), чтобы заставить его.

+0

спасибо. Есть ли у вас какие-либо ссылки для смывания памяти? – Demetris

+0

Я обновил свой ответ с более подробной информацией и ссылками. – jackiezhu