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

Jonathan Ellis commented on CASSANDRA-5062:
-------------------------------------------

bq. Paxos rounds get expensive with several parallel proposers (i.e., several 
parallel user creations)

Of course.  But what I'm proposing is basically paxos-per-replica-set, not a 
single global paxos ensemble.  So you get linearizability-per-partition (which 
is the same as you'd get with a master-per-replica-set approach).  As I said 
above, I'm happy to accept "adequate" here. :)

bq. Complexity of the implementation apart

However, most of that complexity is because of the two "operation modes" -- as 
you point out, leader election/recover, and 2PC.  If we just stick with "raw" 
paxos where any node may make a proposal, it's much simpler.

bq. why not using a simpler protocol, possibly lock-based

I'd be delighted, but as outlined above, I don't see how locks help avoid the 
main problem around lost acks.
                
> 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
>
>
> "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