[ https://issues.apache.org/jira/browse/CASSANDRA-5062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13611519#comment-13611519 ]
Jonathan Ellis commented on CASSANDRA-5062: ------------------------------------------- I've posted a draft of a CAS method to https://github.com/jbellis/cassandra/commits/5062 following the outline I posted (way, way) above. Stuff that is missing: - We probably want to support passing CL.SERIAL to reads, to allow asking "What happened to the CAS operation I just tried, but then the coordinator died before replying to me?" This would just do the prepare phase, and finish any in-progress updates, before performing a quorum read. - May want to allow passing a CL to CAS to specify how many replicas you want to ack the commit before returning. - Any form of CQL support - Any testing > 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