cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-5799) Column can expire while lazy compacting it...
Date Wed, 24 Jul 2013 14:29:48 GMT


Sylvain Lebresne updated CASSANDRA-5799:

    Attachment: 5799.txt

bq. If it requires compaction to take longer than TTL to be a problem

No, it only requires that a TTL expire between the first and second phase, which can happen
whatever the TTL and compaction time is. For some reason, DeletionTime.isDeleted(), which
is just supposed to check if the deletion time shadows a given column is completely broken
(it checks if the columns is deleted which shouldn't even matter for that method) and depends
on the current time. Attaching simple patch to fix.

> Column can expire while lazy compacting it...
> ---------------------------------------------
>                 Key: CASSANDRA-5799
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.2.7
>            Reporter: Fabien Rousseau
>            Assignee: Sylvain Lebresne
>         Attachments: 5799.txt
> Using TTL + range tombstones can lead to failure while lazy compacting rows.
> Scenario to reproduce :
>  - create an SSTable with one row and some columns and a TTL of 8 seconds
>  - wait one second
>  - create a second SSTable with the same rowkey as above, and add a range tombstone
>  - start the first pass of the lazy compaction before the columns with TTL are expired
>  - wait 10 seconds (enough for columns with TTL to expire)
>  - continue lazy expiration
>  - the following assertion will fail :
>     [junit] junit.framework.AssertionFailedError: originally calculated column size of
1379 but now it is 1082
>     [junit] 	at org.apache.cassandra.db.compaction.LazilyCompactedRow.write(

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