[ 
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

Reply via email to