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

Sylvain Lebresne commented on CASSANDRA-5149:
---------------------------------------------

Actually, now that I think about it, I think CASSANDRA-4415 is why I'd really 
rather have this in 2.0.

Currently, because of this, when you page a slice query, you cannot trust a 
given page to return strictly results than you've asked only if paging is done, 
because you could have result expiring mid-request and thus you pretty much can 
never know if the paging is really done or if some columns expired on you. 
CASSANDRA-5099 "solves" this by waiting until basically a query return an empty 
page. However:
# this is really correct. In theory, you could have *all* of the columns fetch 
by the current patch that have expired mid-request, while there's still some 
live columns that match what your are trying to page. Granted, with a large 
enough page size it's very unlikely but still.
# this means you'll *always* do one more query (and that's StorageProxy level 
queries, it's not cheap than would be needed if this ticket was fixed. And 
while having paged get_count being slow don't really make me shed tears, it 
bugs me quite a bit more in the context of CASSANDRA-4415.
# this complicate reasoning about the logic for CASSANDRA-4415 imo. It's much 
easier not to have to care about "oh, what if a column expires mid-request, is 
that ok?".

Besides, I don't think fixing this is very complicated in practice. All we need 
is ship a 'queryServerTimestamp' with the read commands, and carry that down to 
the Column.isMarkedForDelete() method so it uses that instead of 
System.currentTimeMillis(). This might end up being a few lines of code to pass 
this timestamp down as parameter, but it's pretty trivial changes.
                
> 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
>             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