You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Marcus Eriksson (JIRA)" <ji...@apache.org> on 2014/07/30 13:53:39 UTC

[jira] [Commented] (CASSANDRA-7647) Track min/max timestamps of range tombstones

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

Marcus Eriksson commented on CASSANDRA-7647:
--------------------------------------------

to reproduce (will make a dtest for this):
{code}
oss/cassandra [cassandra-2.0●] » bin/cqlsh 
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.9-SNAPSHOT | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> CREATE KEYSPACE aa WITH replication = {'class': 'SimpleStrategy', 'replication_factor':1};
cqlsh> use aa;
cqlsh:aa> CREATE TABLE t (k int PRIMARY KEY,something text, a set<varchar>, b set<varchar>);
cqlsh:aa> INSERT INTO t (k, something, a, b) VALUES (1, 'bluh', {'a', 'aa'}, {'b', 'bb'});
cqlsh:aa> INSERT INTO t (k, something, a, b) VALUES (2, 'bluh', {'a', 'aa'}, {'b', 'bb'});
oss/cassandra [cassandra-2.0●] » bin/nodetool flush
oss/cassandra [cassandra-2.0●] » bin/cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.9-SNAPSHOT | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> USE aa;
cqlsh:aa> UPDATE t SET a=NULL WHERE k=1;
oss/cassandra [cassandra-2.0●] » bin/nodetool flush
oss/cassandra [cassandra-2.0●] » bin/cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.9-SNAPSHOT | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> USE aa;
cqlsh:aa> SELECT * FROM t;

 k | a           | b           | something
---+-------------+-------------+-----------
 1 |        null | {'b', 'bb'} |      bluh
 2 | {'a', 'aa'} | {'b', 'bb'} |      bluh

(2 rows)
{code}
and upgrade the node to 2.1:
{code}
oss/cassandra [cassandra-2.1●] » bin/cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.0-rc4-SNAPSHOT | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh> USE aa;
cqlsh:aa> SELECT * FROM t;

 k | a           | b           | something
---+-------------+-------------+-----------
 1 |        null | {'b', 'bb'} |      bluh
 2 | {'a', 'aa'} | {'b', 'bb'} |      bluh

(2 rows)
cqlsh:aa> 
oss/cassandra [cassandra-2.1●] » bin/nodetool upgradesstables aa t
oss/cassandra [cassandra-2.1●] » bin/cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.0-rc4-SNAPSHOT | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh> USE aa;
cqlsh:aa> SELECT * FROM t;

 k | a           | b           | something
---+-------------+-------------+-----------
 1 |        null | {'b', 'bb'} |      bluh
 2 | {'a', 'aa'} | {'b', 'bb'} |      bluh

(2 rows)
cqlsh:aa> 
oss/cassandra [cassandra-2.1●] » bin/nodetool compact aa t
oss/cassandra [cassandra-2.1●] » bin/cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.0-rc4-SNAPSHOT | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh> USE aa;
cqlsh:aa> SELECT * FROM t;

 k | a           | b           | something
---+-------------+-------------+-----------
 1 | {'a', 'aa'} | {'b', 'bb'} |      bluh
 2 | {'a', 'aa'} | {'b', 'bb'} |      bluh

(2 rows)

{code}

> Track min/max timestamps of range tombstones
> --------------------------------------------
>
>                 Key: CASSANDRA-7647
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7647
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>             Fix For: 2.0.10, 2.1.0
>
>         Attachments: 0001-track-rt-in-min-max-timestamps.patch
>
>
> When compacting etc. we don't track min/max timestamps of range tombstones, meaning a compacted sstable with only RTs will get bad values.
> End result can be that we drop the sstable since it might look like it only contains tombstones and is older than all other sstables, and we lose the valid RT.



--
This message was sent by Atlassian JIRA
(v6.2#6252)