incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Lebresne <sylv...@datastax.com>
Subject Re: Cassandra Counters
Date Tue, 25 Sep 2012 14:12:21 GMT
> In a relatively untroubled cluster, even timed out writes go through,
> provided no messages are dropped.

This all depends of your definition of "untroubled" cluster, but to be
clear, in a cluster where a node dies (which for Cassandra is not
considered abnormal and will happen to everyone no matter how good
your monitoring is), you have a good change to get TimeoutExceptions
on counter writes while the other nodes of the cluster haven't
detected the failure (which can take a few seconds) AND those writes
won't get through. The fact that Cassandra logs dropped messages or
not has nothing to do with that.

> We have 100% consistency on our production servers as we don't
> see messages being dropped on our servers.

Though I'm happy for you that you achieve 100% consistency, I want to
re-iter that not seeing any log of messages being dropped does not
guarantee that all counter writes did went true: the ones that timeout
may or may have been persisted.

--
Sylvain


> Though as you mention, there would be no way to "repair" your dropped messages .
>
> On Tue, Sep 25, 2012 at 6:57 PM, Sylvain Lebresne <sylvain@datastax.com> wrote:
>>> So general question, should I rely on Counters if I want 100% accuracy?
>>
>>
>> No.
>>
>>  Even not considering potential bugs, counters being not idempotent, if you
>> get a TimeoutException during a write (which can happen even in relatively
>> normal conditions), you won't know if the increment went in or not (and you
>> have no way to know unless you have an external way to check the value).
>> This is probably fine if you use counters for say real-time analytics, but
>> not if you use 100% accuracy.
>>
>> --
>> Sylvain

Mime
View raw message