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

Sylvain Lebresne commented on CASSANDRA-1072:
---------------------------------------------

I may be wrong here, but I think that it is a bit harder in
Cassandra. At least, here's a scenario I'm unsure how to deal with unless you
distinguish a primary replica for each write (as done in Kelvin algorithm).

Take a cluster with RP=3. Let's call A, B and C the 3 node hosting some
counter c. Now say you do writes with CL.QUORUM (or less) and the writes are
initially done on some other node D that dispatch the writes to A, B and C.
Consider the two following scenario:

S1: you do 2 simple increments (+1) and everything works fine.
A, B and C receives those and each have 2 columns whose values are 1 and whose
clocks are ... (that's the point, not sure what are those clock to make it
work).

S2: you do 3 simple increments (+1). For some reason you are (really) unlucky
and on each write one of the node (each time a different one) don't get it.
So you also end up with each node (A, B and C) having 2 columns whose values
are 1 and whose clocks are ... (same as in S1). But note that it's CL.QUORUM,
we have acknowledged the writes and should return 3 on a CL.QUORUM or CL.ALL
read.

I don't see any reasonable values for the clocks so that upon a read (even at
CL.ALL) both those scenario returns the right value.

Sorry if I miss something simple, but I'll be interested by any idea/solution.

> Increment counters
> ------------------
>
>                 Key: CASSANDRA-1072
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1072
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: Johan Oskarsson
>            Assignee: Kelvin Kakugawa
>         Attachments: CASSANDRA-1072-2.patch, CASSANDRA-1072.patch
>
>
> Break out the increment counters out of CASSANDRA-580. Classes are shared 
> between the two features but without the plain version vector code the 
> changeset becomes smaller and more manageable.

-- 
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