Надгробие (tombstone) в базах данных
Маркер, показывающий, что ключ удалён, — вместо того чтобы сразу физически стирать данные. Он нужен append-only и распределённым системам, чтобы удаление корректно разошлось, прежде чем старые данные окончательно вычистят.
Зачем: в LSM-дереве нельзя «убрать» запись из неизменяемой SSTable — вместо этого пишется надгробие, которое при чтении перекрывает старое значение. В распределённых системах (Cassandra) надгробие, кроме того, должно реплицироваться на все узлы до удаления данных, иначе узел, пропустивший удаление, «воскресит» мёртвые данные (зомби). Поэтому существует льготный период (gc_grace_seconds), после которого компактизация убирает и данные, и надгробие. Проблема: слишком много надгробий (например, при очередеподобной нагрузке) резко замедляет чтение — классическая ловушка Cassandra.