You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "rene kochen (JIRA)" <ji...@apache.org> on 2011/06/17 14:42:48 UTC

[jira] [Created] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

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: Single node with empty database
            Reporter: rene kochen


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, "test" is included in a major compaction.
3) Delete row named "test".
4) Insert 500000 rows. During this step, "test" is included in a minor compaction.

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

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-2786:
--------------------------------------

    Affects Version/s:     (was: 0.8.7)
        Fix Version/s: 1.0.4
               Labels: compaction  (was: )
    
> 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
>              Labels: compaction
>             Fix For: 0.8.8, 1.0.4
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.patch, 2786_part2.patch, 2786_part3-v2.txt, 2786_part3.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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen updated CASSANDRA-2786:
-----------------------------------

    Attachment: CassandraIssue.zip

> 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: Single node with empty database
>            Reporter: rene kochen
>         Attachments: CassandraIssue.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, "test" is included in a major compaction.
> 3) Delete row named "test".
> 4) Insert 500000 rows. During this step, "test" is included in a minor compaction.
> 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

        

[jira] [Reopened] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen reopened CASSANDRA-2786:
------------------------------------


Tested with 0.8.1 but still doesn't work

> 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
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13060524#comment-13060524 ] 

Hudson commented on CASSANDRA-2786:
-----------------------------------

Integrated in Cassandra-0.8 #205 (See [https://builds.apache.org/job/Cassandra-0.8/205/])
    Handle row tombstones correctly in EchoedRow
patch by slebresne; reviewed by jbellis for CASSANDRA-2786

slebresne : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1143352
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/EchoedRow.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java


> 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051110#comment-13051110 ] 

Sylvain Lebresne commented on CASSANDRA-2786:
---------------------------------------------

The java version would be really cool :)

> 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: Single node with empty database
>            Reporter: rene kochen
>         Attachments: CassandraIssue.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, "test" is included in a major compaction.
> 3) Delete row named "test".
> 4) Insert 500000 rows. During this step, "test" is included in a minor compaction.
> 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

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen updated CASSANDRA-2786:
-----------------------------------

    Attachment: CassandraIssueJava.zip

> 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: Single node with empty database
>            Reporter: rene kochen
>         Attachments: 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, "test" is included in a major compaction.
> 3) Delete row named "test".
> 4) Insert 500000 rows. During this step, "test" is included in a minor compaction.
> 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052700#comment-13052700 ] 

Hudson commented on CASSANDRA-2786:
-----------------------------------

Integrated in Cassandra-0.8 #182 (See [https://builds.apache.org/job/Cassandra-0.8/182/])
    Fix wrong purge of deleted cf during compaction
patch by slebresne; reviewed by jbellis for CASSANDRA-2786

slebresne : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1137984
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/PrecompactedRow.java


> 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
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.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

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen updated CASSANDRA-2786:
-----------------------------------

    Affects Version/s: 0.8.7
    
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051968#comment-13051968 ] 

rene kochen commented on CASSANDRA-2786:
----------------------------------------

I included the Java version. You have to play a little bit with the numbers of rows to insert in order to get the correct compaction timings.

> 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: Single node with empty database
>            Reporter: rene kochen
>         Attachments: 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, "test" is included in a major compaction.
> 3) Delete row named "test".
> 4) Insert 500000 rows. During this step, "test" is included in a minor compaction.
> 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052514#comment-13052514 ] 

Jonathan Ellis commented on CASSANDRA-2786:
-------------------------------------------

+1

(can we make the "testing" constructor package-local?)

> 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
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.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

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-2786:
--------------------------------------

    Attachment: 2786_part3-v2.txt

This is a little subtle so I'm going to spell it out:

The purpose of AbstractCompactedRow.isEmpty  is to skip rows that consist only of expired tombstones:

{code}
.           writer = cfs.createCompactionWriter(expectedBloomFilterSize, compactionFileLocation, sstables);
            while (nni.hasNext())
            {
                AbstractCompactedRow row = nni.next();
                if (row.isEmpty())
                    continue;
                ...
            }
{code}

However, we can't skip tombstones if we're only compacting some of the sstables for a row (CASSANDRA-1074).  The bug here is that the isEmpty test doesn't check the CompactionController.shouldPurge, which is how the controller lets us know it's okay to drop tombstones.  (In the PR case the shouldPurge check was done correctly during creation of compactedCf, but then we ignored it when checking a second time for isEmpty.)

Sylvain's patch fixes the bug.  Here is a v2 that simplifies isEmpty further:

- ER.isEmpty is actually trivial
- PR doesn't need to do a second check of no columns + no row level tombstone (i.e.: there were expired column tombstones); this case would be taken care of by the removeDeleted in compactedCf creation

                
> 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, 0.8.7
>         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, 2786_part3-v2.txt, 2786_part3.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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13155948#comment-13155948 ] 

Hudson commented on CASSANDRA-2786:
-----------------------------------

Integrated in Cassandra-0.8 #403 (See [https://builds.apache.org/job/Cassandra-0.8/403/])
    avoid dropping tombstones when they might still be needed to shadow data in another sstable
patch by slebresne and jbellis for CASSANDRA-2786

jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1205452
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/EchoedRow.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
* /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/PrecompactedRow.java
* /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/SchemaLoader.java
* /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java

                
> 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, 0.8.7
>         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.8
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.patch, 2786_part2.patch, 2786_part3-v2.txt, 2786_part3.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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154740#comment-13154740 ] 

rene kochen commented on CASSANDRA-2786:
----------------------------------------

With the attached program I'm able to reproduce it on a single node.
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13060528#comment-13060528 ] 

Sylvain Lebresne commented on CASSANDRA-2786:
---------------------------------------------

Committed, thanks.

bq. Nit: wouldn't it be cleaner to just pass gcBefore rather than the entire controller to EchoedRow constructor?

I passed the controller because Precompacted and LazilyCompacted do that too, so it felt slightly cleaner, and if we happen to need more info from the controller in the future, it'll be there. But really at the end I did not change it before committing out of laziness :)

> 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154534#comment-13154534 ] 

Jonathan Ellis commented on CASSANDRA-2786:
-------------------------------------------

bq. This seems to me to suggest you aren't running repair often enough 

If you can only reproduce on multiple nodes, that is probably the issue here.
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154289#comment-13154289 ] 

rene kochen commented on CASSANDRA-2786:
----------------------------------------

One note: I tested with several grace-periods. With a grace-period of one minute, it is easier to reproduce. On our production site (with grace-priod of 24 hours), the data resurrects after several days.
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

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

    Attachment: 0001-Fix-wrong-purge-of-deleted-cf.patch

We were wrongfully skipping deleted rows with no columns during compaction. This indeed don't affect 0.7 since this was due to a refactor of PrecompactedRow in 0.8. Patch attached with a unit test to catch the error.

> 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
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Brandon Williams (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154526#comment-13154526 ] 

Brandon Williams commented on CASSANDRA-2786:
---------------------------------------------

bq. With a grace-period of one minute, it is easier to reproduce.

This seems to me to suggest you aren't running repair often enough and are encountering the same effect as CASSANDRA-1316.
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154960#comment-13154960 ] 

rene kochen commented on CASSANDRA-2786:
----------------------------------------

Could you please check again with grace_period of 60.

I use the following to reproduce:

create column family Customers
    with column_type = 'Super' 
    and comparator = 'BytesType'
	and memtable_flush_after = 60
	and gc_grace = 60;

On my system, it crashes every time:

C:\Temp\JavaIssue>java -jar CassandraIssue.jar 127.0.0.1 Traxis
Exception in thread "main" java.lang.Exception: test row should be empty
        at cassandraissue.Main.start(Main.java:88)
        at cassandraissue.Main.main(Main.java:178)
		
Thanks
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

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

    Attachment: 2786_part3.patch

Hopefully we get this right that time. The problem was that we were calling removeDeleted even in case where we shouldn't have been purging. Attaching 'part3' patch to fix, along with an updated unit test for that.
                
> 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, 0.8.7
>         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, 2786_part3.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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen updated CASSANDRA-2786:
-----------------------------------

    Description: 
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.

  was:
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, "test" is included in a major compaction.
3) Delete row named "test".
4) Insert 500000 rows. During this step, "test" is included in a minor compaction.

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.


> 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: Single node with empty database
>            Reporter: rene kochen
>         Attachments: 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Matthew F. Dennis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154786#comment-13154786 ] 

Matthew F. Dennis commented on CASSANDRA-2786:
----------------------------------------------

I should mention that I did change one line in the test.  I changed {noformat}column.timestamp = getTimestamp();{noformat} to {noformat}column.setTimestamp(getTimestamp());{noformat} because otherwise thrift complained that the timestamp wasn't set.
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13155901#comment-13155901 ] 

Sylvain Lebresne commented on CASSANDRA-2786:
---------------------------------------------

+1 on v2
                
> 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, 0.8.7
>         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, 2786_part3-v2.txt, 2786_part3.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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen updated CASSANDRA-2786:
-----------------------------------

    Environment: 
Reproduced on single Cassandra node (CentOS 5.5)
Reproduced on single Cassandra node (Windows Server 2008)

  was:Single node with empty database


> 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
>         Attachments: 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

        

[jira] [Reopened] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "rene kochen (Reopened) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

rene kochen reopened CASSANDRA-2786:
------------------------------------


Tested with 0.8.2 and 0.8.7, but still does not work. On 0.7.x it works fine.
                
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Matthew F. Dennis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13154784#comment-13154784 ] 

Matthew F. Dennis commented on CASSANDRA-2786:
----------------------------------------------

Per previous phone conversation, I tested this against 0.8.7 twice.

Both times the attached java test ran to completion against a single node and output "Done".

When was this last reproduced?
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13155092#comment-13155092 ] 

Sylvain Lebresne commented on CASSANDRA-2786:
---------------------------------------------

I had to tweak the variables a little bit but I'm able to reproduce. Will look into it.
                
> 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, 0.8.7
>         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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052570#comment-13052570 ] 

Sylvain Lebresne commented on CASSANDRA-2786:
---------------------------------------------

Committed, thanks.

I did not made the "testing" constructor package-local because it is used in the AntiEntropyTests which are not on the same package. But I agree it's not the cleanest thing ever.

> 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
>             Fix For: 0.8.1
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.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

        

[jira] [Resolved] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Sylvain Lebresne (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne resolved CASSANDRA-2786.
-----------------------------------------

       Resolution: Fixed
    Fix Version/s: 0.8.1
         Reviewer: jbellis
         Assignee: Sylvain Lebresne

> 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
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.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

        

[jira] [Resolved] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-2786.
---------------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 0.8.2)
                       (was: 0.8.1)
                   0.8.8

committed
                
> 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, 0.8.7
>         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.8
>
>         Attachments: 0001-Fix-wrong-purge-of-deleted-cf.patch, 2786_part2.patch, 2786_part3-v2.txt, 2786_part3.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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13060556#comment-13060556 ] 

Jonathan Ellis commented on CASSANDRA-2786:
-------------------------------------------

bq. Precompacted and LazilyCompacted do that too

That makes sense.

> 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

        

[jira] [Commented] (CASSANDRA-2786) After a minor compaction, deleted key-slices are visible again

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13058755#comment-13058755 ] 

Jonathan Ellis commented on CASSANDRA-2786:
-------------------------------------------

Nit: wouldn't it be cleaner to just pass gcBefore rather than the entire controller to EchoedRow constructor?

+1 otherwise.

> 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