Не могу удалить клетки надгробий в Кассандре
Мы используем кластер с одним узлом кассандры для экспериментов, и одна из проблем, с которой мы сейчас сталкиваемся, - это надгробные клетки. Каждый ряд содержит 2 надгробных клетки, и мы застряли в попытке их удалить. Они вызывают прерывание наших запросов, поскольку порог надгробий достигается довольно быстро.
Это вывод трассировки при чтении одной строки:Read 1 live rows and 2 tombstone cells [ReadStage-2]
Я пытался использовать nodetool garbagecollector
с надлежащим -g
опция (CELL или ROW), но никогда не менялась. Почему клетки томбостона не удаляются после выполнения этой команды? Я также попробовал flush
команда...
Версии:
Cassandra version: 3.11.2
Thrift API version: 20.1.0
CQL supported versions: 3.4.4 (default: 3.4.4)
Ошибка заключается в следующем:
WARN [ReadStage-2] 2018-08-06 12:26:29,269 ReadCommand.java:555 - Read 50000 live rows and 100001 tombstone cells for query SELECT * FROM mykeyspace.mytable WHERE myid > 1025493673608400896 AND token(collectionid, ttype) >= token(10, collected) AND token(collectionid, ttype) <= token(10, collected) LIMIT 1000 (see tombstone_warn_threshold)
ERROR [ReadStage-2] 2018-08-06 12:26:29,272 StorageProxy.java:1906 - Scanned over 100001 tombstones during query 'SELECT * FROM mykeyspace.mytable WHERE myid > 1025493673608400896 AND token(collectionid, ttype) >= token(10, collected) AND token(collectionid, ttype) <= token(10, collected) LIMIT 1000' (last scanned row partion key was ((10, collected), 1025494834679873536)); query aborted
Чего мне не хватает в C* сборщике мусора? Любая помощь в разъяснении этого поведения была бы отличной! Благодарю.
1 ответ
Надгробные камни были правильно собраны, но gc соблюдает значение gc_grace_seconds, установленное для семейства столбцов (по умолчанию 10 дней). После изменения таблицы с помощью следующей команды cqlsh:
alter table mykeyspace.mytable with gc_grace_seconds = 0;
надгробия были сброшены полностью.
Просто чтобы быть уверенным, но, возможно, в этом не было необходимости, я снова запускаю nodetool garbagecollector и nodetool compact для этой таблицы.