[ https://issues.apache.org/jira/browse/CASSANDRA-14304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16439147#comment-16439147
]
DOAN DuyHai commented on CASSANDRA-14304:
-----------------------------------------
If you enforce server-generated timestamp:
Pros:
* easier to sync time between servers rather than between clients
* server are usually co-located geographically so easier to tune NTP
Cons:
* you cannot apply retry strategy at client-side because in case of error, the client would
send the same request for retry but now the server would assign a newer timestamp
When using client-side timestamp, you can use elaborated retry strategies like: Basic retry,
speculative execution etc ..
> 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
|