You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ondřej Černoš (JIRA)" <ji...@apache.org> on 2014/01/27 17:32:38 UTC

[jira] [Updated] (CASSANDRA-6625) Batch containing delete and insert leads to inconsistent results

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

Ondřej Černoš updated CASSANDRA-6625:
-------------------------------------

    Description: 
On a single node cluster (i.e. ./bin/cassandra -f on localhost) we ran into the following. Let's consider empty keyspace with the following table:

{noformat}
CREATE TABLE test (
    a varchar,
    b varchar,
    PRIMARY KEY (a, b)
) WITH comment='List of a related to b - widerow';
{noformat}

The table is empty.

Now we issue the following batch:

{noformat}
BEGIN BATCH
DELETE FROM test WHERE a = 'a1' AND b = 'b1';
INSERT INTO test (a, b) VALUES ('a1', 'b1');
APPLY BATCH;
{noformat}

When the batch successfully finishes, the table is empty.

This is consequence of the fact tombstone wins if timestamps are the same. And they are, because the operation is batched.

I consider this a bug. Batching operations shouldn't change the semantics of batched operations.

  was:
On a single node cluster (i.e. ./bin/cassandra -f on localhost) we ran into the following. Let's consider empty keyspace with the following table:

{noformat}
CREATE TABLE test (
    a varchar,
    b varchar,
    PRIMARY KEY (a, b)
) WITH comment='List of a related to b - widerow';
{noformat}

The table is empty.

Now we issue the following batch:

{noformat}
BEGIN BATCH
DELETE FROM test WHERE a = 'a1' AND b = 'b1';
INSERT INTO test (a, b) VALUES ('a1', 'b1');
APPLY BATCH;
{noformat}

When the batch successfully finishes, the table is empty.

This is consequence of the fact tombstone wins if timestamps are the same. And they are, because the operation is batched.

I consider this a bug. Batching operations shouldn't change the semantics of the operations.


> Batch containing delete and insert leads to inconsistent results
> ----------------------------------------------------------------
>
>                 Key: CASSANDRA-6625
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6625
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: C* 1.2.11
>            Reporter: Ondřej Černoš
>            Priority: Critical
>              Labels: cql3
>
> On a single node cluster (i.e. ./bin/cassandra -f on localhost) we ran into the following. Let's consider empty keyspace with the following table:
> {noformat}
> CREATE TABLE test (
>     a varchar,
>     b varchar,
>     PRIMARY KEY (a, b)
> ) WITH comment='List of a related to b - widerow';
> {noformat}
> The table is empty.
> Now we issue the following batch:
> {noformat}
> BEGIN BATCH
> DELETE FROM test WHERE a = 'a1' AND b = 'b1';
> INSERT INTO test (a, b) VALUES ('a1', 'b1');
> APPLY BATCH;
> {noformat}
> When the batch successfully finishes, the table is empty.
> This is consequence of the fact tombstone wins if timestamps are the same. And they are, because the operation is batched.
> I consider this a bug. Batching operations shouldn't change the semantics of batched operations.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)