мы используем одноузловой кластер Cassandra для экспериментов, и одна проблема, с которой мы сталкиваемся сейчас, - это ячейки надгробий. Каждая строка содержит 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 *? Любая помощь в прояснении этого поведения была бы замечательной! Спасибо.
Надгробные камни были правильно собраны мусором, но gc соблюдает значение gc_grace_seconds, установленное для семейства столбцов (по умолчанию 10 дней). После изменения таблицы с помощью следующей команды cqlsh:
alter table mykeyspace.mytable with gc_grace_seconds = 0;
надгробия были полностью сброшены.
Чтобы быть уверенным, но, возможно, в этом нет необходимости, я снова запускаю nodetool garbagecollector и nodetool compact для этой таблицы.