[ https://issues.apache.org/jira/browse/CASSANDRA-4565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13443295#comment-13443295 ]
Edward Capriolo commented on CASSANDRA-4565: -------------------------------------------- I noticed this because the method I added had loggers that I never saw in the output. What I saw happening was ExpiringColumns past TTL never made it into the flush. After some tracing I came to the conclusion that maybeResetDeletionTimes takes into account ttl time, and converts them to DeletedColumns which do not get flushed. Also if you take the unit test I added, it passes without modification to the code base so unless my test is not doing what I think it seems like cassandra is already handling this. If you are finding this not to be the case we can re-open and I will take a look. > 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: Edward Capriolo > 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