cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5149) Respect slice count even if column expire mid-request
Date Mon, 10 Jun 2013 02:07:20 GMT


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

View raw message