You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ariel Weisberg (JIRA)" <ji...@apache.org> on 2018/12/21 17:28:00 UTC

[jira] [Commented] (CASSANDRA-14448) Improve the performance of CAS

    [ https://issues.apache.org/jira/browse/CASSANDRA-14448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16726921#comment-16726921 ] 

Ariel Weisberg commented on CASSANDRA-14448:
--------------------------------------------

Just to make sure this doesn't get lost.

Benedict pointed out in conversation that we could do the read as part of the accept not the prepare. Basically we agree on what the next conditional operation is going to be.   This means that dueling at the accept phase wouldn't have to do the work of the read. You would have to make it to accept to expend those resources.

> 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
>             Fix For: 4.x
>
>
> 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org