cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CASSANDRA-2317) Column family deletion time is not always reseted after gc_grace
Date Mon, 14 Mar 2011 13:48:29 GMT

     [ 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

Mime
View raw message