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

Cristian Opris commented on CASSANDRA-5062:
-------------------------------------------

Let me rewrite the example with your terminology:

{code}
     X        Y         Z 
1.     L0        L0       L0           //initial state committed R=0
2.             P/C(R=1)<  P/C(R=1)<    //Z sends propose/commit (i.e. paxos 
round) R=1
3.                       L1            //Z has majority with Y, learns locally 
L1 but X and Y fail to learn
4.   P/C(R=2)<             P/C(R=2)<   //Z leads R=2
5.     L2                L2            //Z has majority with X, both learn L2 
but not Y
6.           P/C(R=3)<    P/C(R=3)<  //Z leads R=3
5.                       L3            //Z has majority with Y, learsn locally 
L3 but X and Y fail to learn
{code}

                
> Support CAS
> -----------
>
>                 Key: CASSANDRA-5062
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5062
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API, Core
>            Reporter: Jonathan Ellis
>             Fix For: 2.0
>
>         Attachments: half-baked commit 1.jpg, half-baked commit 2.jpg, 
> half-baked commit 3.jpg
>
>
> "Strong" consistency is not enough to prevent race conditions.  The classic 
> example is user account creation: we want to ensure usernames are unique, so 
> we only want to signal account creation success if nobody else has created 
> the account yet.  But naive read-then-write allows clients to race and both 
> think they have a green light to create.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to