[ https://issues.apache.org/jira/browse/CASSANDRA-14448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16479420#comment-16479420 ]
Jeremiah Jordan edited comment on CASSANDRA-14448 at 5/17/18 5:23 PM: ---------------------------------------------------------------------- bq. How does asynchronous commit make any case worse I want to read what I said to write at LOCAL_QUORUM, and I never do LWT again, so I don't use LOCAL_SERIAL in my reads. In my experience this is a common pattern for people only using LWT for IF NOT EXISTS inserts. Reads don't need to take the overhead of using LOCAL_SERIAL if you are only using LWT to insert new data when a row does not exist. was (Author: jjordan): bq. How does asynchronous commit make any case worse I want to read what I said to write at LOCAL_QUORUM, and I never do LWT again, so I don't use LOCAL_SERIAL in my reads. In my experience this is a common patter for people only using LWT for IF NOT EXISTS inserts. Reads don't need to take the overhead of using LOCAL_SERIAL if you are only using LWT to insert new data when a row does not exist. > Improve the performance of CAS > ------------------------------ > > Key: CASSANDRA-14448 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14448 > Project: Cassandra > Issue Type: Improvement > Components: Coordination > Reporter: Dikang Gu > Assignee: Dikang Gu > Priority: Major > > I'm working on some performance improvements of the lightweight transitions > (compare and set). > > As you know, current CAS requires 4 round trips to finish, which is not > efficient, especially in cross DC case. > 1) Prepare > 2) Quorum read current value > 3) Propose new value > 4) Commit > > I'm proposing the following improvements to reduce it to 2 round trips, which > is: > 1) Combine prepare and quorum read together, use only one round trip to > decide the ballot and also piggyback the current value in response. > 2) Propose new value, and then send out the commit request asynchronously, so > client will not wait for the ack of the commit. In case of commit failures, > we should still have chance to retry/repair it through hints or following > read/cas events. > > After the improvement, we should be able to finish the CAS operation using 2 > rounds trips. There can be following improvements as well, and this can be a > start point. -- 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