Назад | Перейти на главную страницу

Невозможно удалить ячейки надгробий в Кассандре

мы используем одноузловой кластер 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 для этой таблицы.