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

Aleksey Yeschenko commented on CASSANDRA-4775:
----------------------------------------------

Was looking into possible variations of the original idea - the first comment 
in this issue, and how we could implement it to allow true idempotent 
client-retriable counter updates, and came with this so far: 
https://gist.github.com/iamaleksey/fa36552409dc2aa70bee

Cons:
- has significant overhead per-cell - needs to store the timeuuid in the column 
name
- has the obvious overhead of having multiple cells per single counter
- requires either forcing QUORUM writes (so that merge could get away with 
QUORUM reads) or ALL reads for the merge. Now, this is probably true for any 
merge process for any variation of 'each update = new cell, with periodic 
merges'
- requires special-casing on the read path
- maintaining backward compatibility isn't going to be fun

Pros:
- updates are truly idempotent (within the configurable write window)
- allows counters to coexist with regular columns in regular tables
- allows including counters in (non-logged) batches
- requires a lot less overall special-casing
- easily supports min/max/avg/sum_sq functions

Not sure if this is viable considering that '"retryable" is at the very bottom 
of my priorities here' but maybe there is something useful in there anyway.
                
> 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