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

Aleksey Yeschenko commented on CASSANDRA-5149:
----------------------------------------------

bq. Can't we create a version of ExpiringColumn.create() that never transform a 
DeletedColumn to an ExpiringColumn and use that for cache deserialization (or 
say do that when expireBefore is negative and pass -1 for expireBefore in the 
row cache code).

That is easy, actually, since you only have to special-case starting at 
SerializingCacheProvider.deserialize() method. But I'm afraid it's not enough. 
That is, special-casing it just for the row cache is not enough, must do the 
same for sstable deserialization (or remove the optimization entirely), or else 
a row serialized into the cache as a result of request (a) with timestamp Y 
might not be the right row for request (b) with timestamp X (< Y) coming out of 
order if a column expires between X and Y.

Making ExpiringColumn.create() to never return DeletedColumn instances would be 
the easiest way to deal with it, but what would impact compaction (and repair), 
so I suggest making NO expring->deleted optimization the default behavior, and 
only enabling it for compaction (incl. validation compaction) (and 
SSTableExport), or, in other words, special-case it for SSTII only.
                
> Respect slice count even if column expire mid-request
> -----------------------------------------------------
>
>                 Key: CASSANDRA-5149
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5149
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.7.0
>            Reporter: Sylvain Lebresne
>            Assignee: Aleksey Yeschenko
>             Fix For: 2.0
>
>
> This is a follow-up of CASSANDRA-5099.
> If a column expire just while a slice query is performed, it is possible for 
> replicas to count said column as live but to have the coordinator seeing it 
> as dead when building the final result. The effect that the query might 
> return strictly less columns that the requested slice count even though there 
> is some live columns matching the slice predicate but not returned in the 
> result.

--
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