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

Sylvain Lebresne updated CASSANDRA-2317:
----------------------------------------

    Attachment: 0003-Reset-CF-and-SC-deletion-time-after-compaction.patch
                0002-Add-unit-test.patch
                0001-Add-AbstractColumnContainer-to-factor-common-parts-o.patch

bq. How do you have CF objects around at all post-purge?

The problem is actually with cf objects that don't get fully purged. Those 
still retain their markedForDeleteAt and localDeletionTime after compaction 
even though it could be way past gc_grace. That is, a deletion can easily live 
way past gc_grace + compaction.

As it turns out, super columns also suffers for the same problem.

Because it felt a bit annoying to have to fix the problem in 2 places, and 
because that's not the first time that happens, the first attached is a 
refactoring one, that introduces an AbstractColumnContainer class that factor 
common code to ColumnFamily and SuperColumn.

The second patch introduces unit tests for column family and super columns and 
third patch is the fix. It introduces a new structure to hold both 
markedDeletedAt and localDeletionTime so that we are able to set both of those 
together atomically. This is necessary for the second part of CASSANDRA-2305.  
I think that anyhow it was not fully correct to update them non atomically.

Note that the third patch depends on the patch for CASSANDRA-2279.

All patches are against 0.7.


> Column family deletion time is not always reseted after gc_grace
> ----------------------------------------------------------------
>
>                 Key: CASSANDRA-2317
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2317
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.6
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>         Attachments: 
> 0001-Add-AbstractColumnContainer-to-factor-common-parts-o.patch, 
> 0002-Add-unit-test.patch, 
> 0003-Reset-CF-and-SC-deletion-time-after-compaction.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Follow up of CASSANDRA-2305.
> Reproducible (thanks to Jeffrey Wang) by: 
> Create a CF with gc_grace_seconds = 0 and no row cache.
> Insert row X, col A with timestamp 0.
> Insert row X, col B with timestamp 2.
> Remove row X with timestamp 1 (expect col A to disappear, col B to stay).
> Wait 1 second.
> Force flush and compaction.
> Insert row X, col A with timestamp 0.
> Read row X, col A (see nothing).

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

Reply via email to