Some more recent documentation can be found here: 
http://wiki.apache.org/cassandra/Counters but even that may be out of date.  
One thing that has been added is multiple consistency levels are supported.  
There are a lot of other tickets that have been completed post 1072.  Search 
for "cassandra counter" in Jira and you'll likely find a lot of them.

Others may have more info than this, but just wanted to get you started.

Jeremy

On May 30, 2011, at 7:57 PM, Yang wrote:

> I went through https://issues.apache.org/jira/browse/CASSANDRA-1072
> 
> and realize that the consistency guarantees of Counters are a bit different 
> from those of regular columns, so could you please confirm
> that the following are true?
> 
> 1) comment 
> https://issues.apache.org/jira/browse/CASSANDRA-1072?focusedCommentId=12900659&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12900659
>  
> still holds : "there is no way to create a write CL greater than ONE, and 
> thus, no defense against permanent failures of single machines" 
> 2) due to the above, the best I can achieve to increase reliability is to 
> enable REPLICATE_ON_WRITE, but this  would still expose the recent updates on 
> the leader to being lost during a short interval
> 3) without REPLICATE_ON_WRITE (or equivalently, read repair ) I would have to 
> do CL=ALL on read. then in this case, if the leader fails, all future reads 
> fail. so for counters I have to enable 
> REPLICATE_ON_WRITE or set read_repair chance to a reasonably high value, and 
> do read CL!= ALL.
> 
> 
> 
> 
> 
> 
> apart from the questions, some thoughts on Counters:
> the idea of distributed counters can be seen, in distributed algorithms 
> terms, as a state machine (see Fred Schneider 93'),  where ideally we send 
> the messages (delta increments) to each node, and the final state (sum of 
> deltas, or the counter value) is deduced independently at each node.  in the 
> current implementation, it's really not a distributed state machine, since 
> state is deduced only at the leader, and what is replicated is just the final 
> state. in fact, the data from different leaders are orthogonal, and within 
> the data flow from one leader, it's really just a master-slave system. then 
> we realize that this system is prone to single master failure.
> 
> if we want to build a truely distributed state machine, I am afraid there are 
> no easier/faster solutions than existing ones (Paxos, etc). But I guess that 
> a possible solution could lay in the fact that our goal allows for a 
> relaxation than traditional state machine: Eventually consistent, and also 
> that our operations are commutative ( re-ordering 2 adds yields the same 
> state , when we apply the state changes ). how we take advantage of these 
> facts could probably enable us to come to a truely distributed counters 
> solution.
> 
> the route of keeping all individual updates at each node has been mentioned 
> in the JIRA, and later do reconciliation on the history. because messages 
> losses are less common than success, maybe this is not as bad a route as we 
> thought??
> 
> 
> Thanks
> Yang
> 

Reply via email to