cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcus Eriksson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7953) RangeTombstones not merging during compaction
Date Mon, 29 Sep 2014 07:05:34 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14151434#comment-14151434
] 

Marcus Eriksson commented on CASSANDRA-7953:
--------------------------------------------

It might not be safe to change the comparator for this, a proper fix should probably be in
RangeTombstone.Tracker and remove all unnecessary RTs (not only the ones that have the same
start point). It might not be trivial in our new (since CASSANDRA-4180) single-pass compaction
though

> RangeTombstones not merging during compaction
> ---------------------------------------------
>
>                 Key: CASSANDRA-7953
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7953
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: Cassandra 2.1
>            Reporter: Marcus Olsson
>            Priority: Minor
>              Labels: compaction, deletes, tombstone
>         Attachments: 0001-7953-v2.patch, CASSANDRA-7953-1.patch, CASSANDRA-7953.patch
>
>
> When performing a compaction on two sstables that contain the same RangeTombstone with
different timestamps, the tombstones are not merged in the new sstable.
> This has been tested using cassandra 2.1 with the following table:
> {code}
> CREATE TABLE test(
>   key text,
>   column text,
>   data text,
>   PRIMARY KEY(key, column)
> );
> {code}
> And then doing the following:
> {code}
> INSERT INTO test (key, column, data) VALUES ("1", "1", "1"); // If the sstable only contains
tombstones during compaction it seems that the sstable either gets removed or isn't created
(but that could probably be a separate JIRA issue).
> INSERT INTO test (key, column, data) VALUES ("1", "2", "2"); // The inserts are not actually
needed, since the deletes create tombstones either way.
> DELETE FROM test WHERE key="1" AND column="2";
> nodetool flush
> INSERT INTO test (key, column, data) VALUES ("1", "2", "2");
> DELETE FROM test WHERE key="1" AND column="2";
> nodetool flush
> nodetool compact
> {code}
> When checking with the SSTableExport tool two tombstones exists in the compacted sstable.
This can be repeated, resulting in more and more tombstones.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message