[ 
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

Reply via email to