cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cristian Opris (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5062) Support CAS
Date Tue, 05 Mar 2013 17:20:15 GMT


Cristian Opris commented on CASSANDRA-5062:

More obvious example:

     X        Y         Z 
1.     L0        L0       L0           
2.             P/C(R=1)<  P/C(R=1)<    
3.                       L1            
4.             P/C(R=2)<  P/C(R=2)<   
5.                       L2            
6.             P/C(R=3)<  P/C(R=3)<  
5.                       L3            

Z dies, that's fine the values are not lost they survive in Y. However a read with just Z
and Y would need to resolve the last 3 paxos rounds to get the correct value.

That could work, but what I'm suggesting is to do that at accept (your commit) time ensuring
you always have a quorum that has learned
the latest value.
> Support CAS
> -----------
>                 Key: CASSANDRA-5062
>                 URL:
>             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
> "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:

View raw message