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

Kurt Greaves commented on CASSANDRA-14304:
------------------------------------------

bq. Should we make our own retry policy to prevent retry of such batch? We use 
batches to write large binary BLOBs chunked in smaller statements.
You can, but you'd also have to ensure you don't use speculative execution 
either and possibly other things using client timestamps I don't know about, 
otherwise you risk mixing client and server timestamps (more so than LWT).

bq. However using LWT everywhere seems overkill.
It probably is, but can you break out the statements that absolutely need to be 
ordered into another table? That might be a better alternative...

> 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-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to