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

Sylvain Lebresne edited comment on CASSANDRA-1546 at 9/29/10 9:50 AM:
----------------------------------------------------------------------

Attaching a new version of the patch that includes the support for counter as 
super columns.
I want to keep the counter-as-row too, because I believe in the marker idea a 
lot and that won't
fly for counter as super columns until we don't deserialize super columns 
entirely.

The details of the thrift API is a proposal, it can be discussed. In 
particular, for 
the batch_add call, it would have made more sense for it to take a map of 
CounterPath -> CounterUpdate. However, that doesn't work in python (because
CounterPath is not hashable and thus the map can't be constructed). So it takes
something similar to batch_mutate. However, if you use batch_add to insert non 
nested counters (the terminology of the patch for counter-as-row, by opposition 
to 
counter-as-super-columns that are called nested counters), then the first key 
of the
map can be anything (which is fine but weird).

Also, the get_counter_slice and multiget_counter_slice can't be used for non 
nested
counters. It won't be hard to add an equivalent of get_range_slices for 
counters, but 
that will have to wait.

Lastly, the implementation of batch_add sucks right now as it creates a new 
mutation 
for each update. Again, not hard to fix, just need some time for that. 

(in an unrelated note, please tell if you prefer me to attach new versions when 
I update
the patch instead of replacing them)

      was (Author: slebresne):
    Attaching a new version of the patch that includes the support for counter 
as super columns.
I want to keep the counter-as-row too, because I believe in the marker idea a 
lot and that won't
fly for counter as super columns until we don't deserialize super columns 
entirely.

The details of the thrift API is a proposal, it can be discussed. In 
particular, for 
the batch_add call, it would have made more sense for it to take a map of 
CounterPath -> CounterUpdate. However, that doesn't work in python (because
CounterPath is not hashable and thus the map can't be constructed). So it takes
something similar to batch_mutate. However, if you use batch_add to insert non 
nested counters (the terminology of the patch for counter-as-row, by opposition 
to 
counter-as-super-columns that are called nested counters), then the first key 
of the
map can be anything (which is fine but weird).

Also, the get_counter_slice and multiget_counter_slice can't be used for non 
nested
counters. It won't be hard to add an equivalent of get_range_slices for 
counters, but 
that will have to wait.

Lastly, the implementation of batch_add sucks right now as it creates a new 
mutation 
for each update. Again, not hard to fix, just need some time for that. 
  
> (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, 
> 0002-Counters.patch, 0003-Generated-thrift-files-changes.patch
>
>
> 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.

Reply via email to