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-2786) After a minor compaction, deleted key-slices are visible again
Date Thu, 30 Jun 2011 15:05:29 GMT

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

Sylvain Lebresne updated CASSANDRA-2786:
----------------------------------------

    Attachment: 2786_part2.patch

Yeah, turns out EchoedRow is also handling Row tombstones with no columns inside badly.

Attaching patch with fix and unit test. 0.7 is not really impacted because it uses EchoedRow
only for cleanup and don't use its isEmpty() function there (but I suppose we could make it
throw an UnsupporteOperationException to be on the safe side).

The patch actually ship with two changes that are not strictly related to the issue:
# It fixes testEchoedRow in CompactionsTest. It wasn't using EchoedRow anymore (i.e, the test
was useless).
# It always forces deserialization for user submitted compaction (by opposition to only when
the user submits only 1 sstable). It is done because exposing the forceDeserialization flag
was necessary to write the test for this issue. Following that change, it was trivial to do
the user submitted compaction change. It also fix a bad comment (forcing deserialization is
only useful for forcing expired column to become tombstones, not for purging since purging
will happen without force deserialization if it can).

> After a minor compaction, deleted key-slices are visible again
> --------------------------------------------------------------
>
>                 Key: CASSANDRA-2786
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2786
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.0
>         Environment: Reproduced on single Cassandra node (CentOS 5.5)
> Reproduced on single Cassandra node (Windows Server 2008)
>            Reporter: rene kochen
>            Assignee: Sylvain Lebresne
>             Fix For: 0.8.1, 0.8.2
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.patch, 2786_part2.patch, CassandraIssue.zip,
CassandraIssueJava.zip
>
>
> After a minor compaction, deleted key-slices are visible again.
> Steps to reproduce:
> 1) Insert a row named "test".
> 2) Insert 500000 rows. During this step, row "test" is included in a major compaction:
>    file-1, file-2, file-3 and file-4 compacted to file-5 (includes "test").
> 3) Delete row named "test".
> 4) Insert 500000 rows. During this step, row "test" is included in a minor compaction:
>    file-6, file-7, file-8 and file-9 compacted to file-10 (should include tombstoned
"test").
> After step 4, row "test" is live again.
> Test environment:
> Single node with empty database.
> Standard configured super-column-family (I see this behavior with several gc_grace settings
(big and small values):
> create column family Customers with column_type = 'Super' and comparator = 'BytesType;
> In Cassandra 0.7.6 I observe the expected behavior, i.e. after step 4, the row is still
deleted.
> I've included a .NET program to reproduce the problem. I will add a Java version later
on.

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

        

Mime
View raw message