[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13691193#comment-13691193
 ] 

Timo Kinnunen commented on CASSANDRA-4775:
------------------------------------------

I read a paper called A comprehensive study of Convergent and Commutative 
Replicated Data Types, which specifies an eventually consistent 
increment/decrement counter, among other things. It's available here: 
http://hal.inria.fr/docs/00/55/55/88/PDF/techreport.pdf 

Briefly, the idea is pretty simple: each replica of the counter has an array of 
values, containing one value per replica, called a payload. Each value in the 
array is the sum of the increments that a single replica has performed. The 
value of the counter is the sum of the values in the array. The payloads are 
sent to other replicas and each replica merges an incoming payload by taking 
the maximum of each pair of values in the incoming and local arrays. This is 
idempotent so payloads can be resent as many times as needed.
                
> 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

Reply via email to