[
https://issues.apache.org/jira/browse/CASSANDRA-225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12719083#action_12719083
]
Sandeep Tata commented on CASSANDRA-225:
----------------------------------------
You are subject to reduced availability *only* for the portions of your
application that use the higher consistency APIs.
There is no way, for instance, to implement a test-and-set primitive on a store
that can only provide eventual consistency guarantees. Many applications will
have small parts that need to have atomicity+isolation guarantees. Example:
"read X, write X+1" .
So, we can decide we *never* want atomicity guarantees for *anything* other
than a single insert or get. This will severely limit what apps can run on
Cassandra. (BTW using ZK based locks will lead to the very same availability
loss, except at much worse performance.)
I'm suggesting, we make a trade-off to support a small set of calls with better
consistency guarantees so we can get a real test-and-set. If a failure +
recovery happens before your app makes two consecutive calls to a higher
consistency level call, you never perceive any loss of availability.
> Support mastered writes
> -----------------------
>
> Key: CASSANDRA-225
> URL: https://issues.apache.org/jira/browse/CASSANDRA-225
> Project: Cassandra
> Issue Type: New Feature
> Affects Versions: 0.4
> Environment: all
> Reporter: Sandeep Tata
> Assignee: Sandeep Tata
> Fix For: 0.4
>
> Attachments: 225.patch
>
>
> Writes to a row today can be run on any of the replicas that own the row. An
> additional set of APIs to perform "mastered" writes that funnel through a
> primary is important if applications have some operations that require higher
> consistency. Test-and-set is an example of one such operation that requires a
> higher consistency guarantee.
> To stay true to Cassandra's performance goals, this should be done in a way
> that does not compromise performance for apps that can deal with lower
> consistency and never use these APIs. That said, an app that mixes higher
> consistency calls with lower consistency calls should be careful that they
> don't operate on the same data.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.