[ 
https://issues.apache.org/jira/browse/CASSANDRA-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-2349:
----------------------------------------

    Attachment: 0001-Don-t-transform-expired-tombstone-in-LazilyCompacted.patch

Attaching simpler solution consisting in not transforming expired columns into 
tombstones, so that the second phase of LazilyCompactedRow sees the same 
columns than the first phase.

I would be happy to come up with a unit test for this, but this is a subtle 
race condition and I'm really not sure how to write a test that capture it.

> Expring columns can expire between the two phase of LazilyCompactedRow.
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-2349
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2349
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Critical
>             Fix For: 0.7.5
>
>         Attachments: 
> 0001-Don-t-transform-expired-tombstone-in-LazilyCompacted.patch
>
>   Original Estimate: 8h
>  Remaining Estimate: 8h
>
> LazilyCompactedRow reads the columns to compact twice. First to create the 
> index, bloom filter and calculate the data size, and then another phase to 
> actually write the columns. But a column can expire between those two phase, 
> which will result in a bad data size in the sstable (and a possibly corrupted 
> row index).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to