[
https://issues.apache.org/jira/browse/CASSANDRA-1072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12889741#action_12889741
]
Jonathan Ellis commented on CASSANDRA-1072:
-------------------------------------------
Sounds like the problem is you are trying to be too clever by making increment
too low-level. It's fine to have increment be a special op at the thrift
level, but internally we need to deal with _values_ and clocks otherwise we
lose the ability to detect conflicts, as in your example. If A should send out
(11: {A: 11}) -- that is, (value, {clock}), then B and C can tell that their
clocks are ancestors of A's w/ no conflicts.
This does mean that we need to keep conflict history for up to GCGraceSeconds
(good discussion at http://pl.atyp.us/wordpress/?p=2601) but that is much more
acceptable than compromising our fully-distributed design. I also suspect it
would be much less code, as well as more generalized.
> Increment counters
> ------------------
>
> Key: CASSANDRA-1072
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1072
> Project: Cassandra
> Issue Type: Sub-task
> Components: Core
> Reporter: Johan Oskarsson
> Assignee: Kelvin Kakugawa
> Attachments: CASSANDRA-1072-2.patch, CASSANDRA-1072.patch
>
>
> Break out the increment counters out of CASSANDRA-580. Classes are shared
> between the two features but without the plain version vector code the
> changeset becomes smaller and more manageable.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.