[ https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13701215#comment-13701215 ]
Jonathan Ellis commented on CASSANDRA-4775: ------------------------------------------- Going back to the Sylvain's comments on the existing counters implementation: bq. I believe that "implementation detail" is responsible for a fair amount of the pain counters are... We could change that "implementation detail". Instead we could stop distinguishing the merge rules for local shard, and when a replica need to increment his hard, he would read/increment/write while holding a lock to ensure atomicity. On the one hand, the idea of applying a band aid instead of a rewrite is very appealing from a risk management perspective, and the merge code has pained me ever since we added it. On the other hand, I have two problems with counters 1.0 that are not addressed by this: # read-before-write is inherent in the 1.0 design [although for the record I think its original authors did not realize that], which means counters offer very different [worse] performance from "normal" Cassandra updates. We see this confuse people fairly regularly today, and we saw the same confusion with indexes before we fixed it there. # I don't care a whole lot about replayability from a client perspective, but idempotence internally is very handy (CASSANDRA-5549). > Counters 2.0 > ------------ > > Key: CASSANDRA-4775 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4775 > Project: Cassandra > Issue Type: New Feature > Components: Core > Reporter: Arya Goudarzi > Assignee: Aleksey Yeschenko > Labels: counters > Fix For: 2.1 > > > The existing partitioned counters remain a source of frustration for most > users almost two years after being introduced. The remaining problems are > inherent in the design, not something that can be fixed given enough > time/eyeballs. > Ideally a solution would give us > - similar performance > - less special cases in the code > - potential for a retry mechanism -- 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