Details
-
New Feature
-
Status: Resolved
-
Low
-
Resolution: Duplicate
-
None
-
None
Description
Tables with mostly TTL columns tend to suffer from high droppable tombstone ratio, which results in higher read latency, cpu utilization, and disk usage. Expired TTL data become tombstones, and the nature of purging tombstones during compaction (due to checking for overlapping SSTables) make them susceptible to surviving much longer than expected. A table option to purge TTL on expiration would address this issue, by preventing them from becoming tombstones. A boolean purge_ttl_on_expiration table setting would allow users to easily turn the feature on or off.
Being more aggressive with gc_grace could also address the problem of long lasting tombstones, but that would affect tombstones from deletes as well.
Even if a purged [expired] cell is revived via repair from a node that hasn't yet compacted away the cell, it would be revived as an expiring cell with the same localDeletionTime, so reads should properly handle them. As well, it would be purged in the next compaction.
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-13643 converting expired ttl cells to tombstones causing unnecessary digest mismatches
- Resolved