[ https://issues.apache.org/jira/browse/CASSANDRA-1546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12918581#action_12918581 ]
Kelvin Kakugawa commented on CASSANDRA-1546: -------------------------------------------- I have no issues w/ a counter-specific API. UUIDs are interesting enough that they're worth investigating. The complexity of the context-based logic is to be space efficient. In practice, cassandra nodes are typically I/O bound, not CPU bound. Beyond that, a reasonable amount of effort was invested to optimize the implementation--a modified quicksort and dynamic programming for set comparison. ntm, it leverages byte arrays, instead of creating more objects for GC. So, I'm not confident in the statement that #1546 is clearly faster than #1072. As a rule of thumb, it's better to directly manage your memory usage, as opposed to relying on the runtime's GC. Supporting decrements, natively, is not complex. The original implementation of #1072 against 0.6 re-used #580's vector clock tuples. So, it could track the latest count (for a partition) by the timestamp of the tuple. The tuple format was modified to remove the timestamp, because I wanted to cut down on the size of the partitioned counter. However, in retrospect, it definitely is useful for decrements. I wrote and deployed a modified version of #1072 that widens the tuple, again, w/ a logical clock--# of operations computed, to support decrements. I'll look into refactoring the context-based logic for partitioned counters. I have no problems supporting your UUID implementation as an optional code path. > (Yet another) approach to counting > ---------------------------------- > > Key: CASSANDRA-1546 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1546 > Project: Cassandra > Issue Type: New Feature > Components: Core > Reporter: Sylvain Lebresne > Assignee: Sylvain Lebresne > Fix For: 0.7.0 > > Attachments: 0001-Remove-IClock-from-internals.patch, > 0001-v2-Remove-IClock-from-internals.patch, > 0001-v3-Remove-IClock-from-internals.patch, 0002-Counters.patch, > 0002-v2-Counters.patch, 0002-v3-Counters.patch, > 0003-Generated-thrift-files-changes.patch, 0003-v2-Thrift-changes.patch, > 0003-v3-Thrift-changes.patch, marker_idea.txt > > > This could be described as a mix between CASSANDRA-1072 without clocks and > CASSANDRA-1421. > More details in the comment below. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.