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