Ariel Weisberg created CASSANDRA-20589:
------------------------------------------

             Summary: Improve consistency of non-SERIAL mutations on Accord
                 Key: CASSANDRA-20589
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20589
             Project: Apache Cassandra
          Issue Type: Improvement
          Components: Accord
            Reporter: Ariel Weisberg


Right now all non-SERIAL mutations on Accord use the coordinator generated 
timestamp not the Accord generated timestamp making them not linearizable. This 
isn’t a regression, but it could maybe be improved to be linearizable in more 
cases.

One complication is that `USING TIMESTAMP` needs to be detected and respected 
by Accord and `USING TIMESTAMP` can be per statement in both a logged and 
unlogged batch. Additionally this information is not available anymore at the 
`StorageProxy` layer where coordinating mutations takes place.

Hints and batch log will repeatedly apply operations and they need to be 
idempotent so those should always re-use the same timestamp otherwise you risk 
data resurrection. Additionally the underlying update might be applied as a 
transaction, and then it might be applied again as a hint/batchlog replay so 
the correctness of this approach needs to be thoroughly evaluated since we are 
now mixing Accord and coordinator generated timestamps in the non-SERIAL write 
path.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to