Re: Improve the performance of CAS

Hi Dikang,
Have you seen Blake’s work on implementing egalitarian paxos or epaxos*? That might be helpful for the discussion.
Jeremy
* https://issues.apache.org/jira/browse/CASSANDRA-6246
> On May 16, 2018, at 3:37 PM, Dikang Gu <dikang85@xxxxxxxxx> wrote:
>
> Hello C* developers,
>
> I'm working on some performance improvements of the lightweight transitions
> (compare and set), I'd like to hear your thoughts about it.
>
> 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.
>
> What do you think? Did I miss anything?
>
> Thanks
> Dikang
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: dev-help@xxxxxxxxxxxxxxxxxxxx