[
https://issues.apache.org/jira/browse/CASSANDRA-4565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453550#comment-13453550
]
Aleksey Yeschenko commented on CASSANDRA-4565:
----------------------------------------------
Currently ExpiringColumns are replaced with DeletedColumns in
ExpiringColumn#create method, which is called when deserializing columns during
sstable reads.
So expired columns with ttl are being turned into tombstones during compaction,
but NOT at memtable flush time.
We can turn them into tombstones at flush time too - this should save some
space but will require additional logic.
But we can't just dismiss them completely no matter how small gcgs is - for the
same reason that we still write row-level tombstones that are beyond gcgs
period.
Which is that it can result in unexpected behaviour where deletes never make it
to disk, as they are lost, and so cannot override existing column values in
existing sstables.
Do you want to leave it as is or add [expired column with ttl -> column
tombstone] conversion at memtable flush time?
> TTL columns with older then gcgrace do not need to flush
> --------------------------------------------------------
>
> Key: CASSANDRA-4565
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4565
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Edward Capriolo
> Assignee: Aleksey Yeschenko
> Fix For: 1.3
>
> Attachments: cassandra-4565.patch.1.txt
>
>
> With memcache many people are willing to sacrifice durability for
> performance. Cassandra has a TimeToLive feature that can be used in caching
> scenarios with low values for gc_grace_seconds. However from a code dive it
> seems that cassandra will always write TTL to disk, even those that are
> beyond gc_grace_seconds. If a use case very large memtables,small ttl, and
> small gc_grace it is possible that flushing these columns to disk can be
> skipped entirely in some scenarios.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira