cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Whang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-13561) Purge TTL on expiration
Date Thu, 06 Jul 2017 22:39:00 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-13561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16077291#comment-16077291
] 

Andrew Whang commented on CASSANDRA-13561:
------------------------------------------

Correct me if I'm wrong, but the limitations I see with CASSANDRA-13418 are:
1. It's tied to a compaction strategy, and currently only supported in TWCS.
2. It helps cleanup sstables, but only when all items in the sstable have expired. 

The approach I'm proposing would support dropping individual (expired) cells within the sstable,
without having to wait for all other items  to expire.

> Purge TTL on expiration
> -----------------------
>
>                 Key: CASSANDRA-13561
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13561
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Andrew Whang
>            Assignee: Andrew Whang
>            Priority: Minor
>             Fix For: 4.0
>
>
> 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. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message