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

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

I understand what you mean by terminology but this is not where the confusion 
is coming from.

My commit C1,C2 etc is your learn, agreed. My accept is your commit.

It may be a bit confusing because I'm not detailing everything in the diagram

So when Z goes into C1, that implies: it receives accept from Y, it commits 
(i.e. writes) the value locally
and then it sends learn message to X and Y, which might fail without Z having 
any record of that.

I know this is not the exact behaviour in your algoritm. I'm not sure how the 
leader commits (learns) the value locally, is it because it ends 
up calling receive(LEARN) locally (i.e. acting as acceptor as well) ?

But this doesn't change my point.

*My point is the learn can fail without the leader being aware, which leads to 
a state where each replica is at a different 
stage of learning. Even if the paxos round states are correct in terms of 
accepted values (what you call commit), they are not finished in 
terms of learning*

                
> 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