cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "DOAN DuyHai (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-14304) DELETE after INSERT IF NOT EXISTS does not work
Date Mon, 16 Apr 2018 07:40:00 GMT

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

DOAN DuyHai commented on CASSANDRA-14304:
-----------------------------------------

> Does this mean that the processing of a LWT ignores the client-generated timestamp and
uses one generated by the server?

 

Exactly, the timestamp used by the server for all LWT operations == Paxos ballot. This is
necessary to guarantee a monotonic increasing timestamp for LWT

> DELETE after INSERT IF NOT EXISTS does not work
> -----------------------------------------------
>
>                 Key: CASSANDRA-14304
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14304
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Julien
>            Assignee: Vinay Chella
>            Priority: Major
>         Attachments: debug.log, system.log
>
>
> DELETE a row immediately after INSERT IF NOT EXISTS does not work.
> Can be reproduced with this CQL script:
> {code:java}
> CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor'
: 1 };
> CREATE TABLE ks.ta ( id text PRIMARY KEY, col text );
> INSERT INTO ks.ta (id, col) VALUES ('myId', 'myCol') IF NOT EXISTS;
> DELETE FROM ks.ta WHERE id = 'myId';
> SELECT * FROM ks.ta WHERE id='myId';
> {code}
> {code:java}
> [cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
> Use HELP for help.
> WARNING: pyreadline dependency missing.  Install to enable tab completion.
> cqlsh> CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor'
: 1 };
> cqlsh> CREATE TABLE ks.ta ( id text PRIMARY KEY, col text );
> cqlsh> INSERT INTO ks.ta (id, col) VALUES ('myId', 'myCol') IF NOT EXISTS;
>  [applied]
> -----------
>       True
> cqlsh> DELETE FROM ks.ta WHERE id = 'myId';
> cqlsh> SELECT * FROM ks.ta WHERE id='myId';
>  id   | col
> ------+-------
>  myId | myCol
> {code}
>  * Only happens if the client is on a different host (works as expected on the same host)
>  * Works as expected without IF NOT EXISTS
>  * A ~500 ms delay between INSERT and DELETE fixes the issue.
> Logs attached.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message