This blog post should help:

http://www.datastax.com/dev/blog/how-cassandra-deals-with-replica-failure

But to answer your question:

>> UnavailableException is bit tricky. It means, that not all replicas
>> required by CL received update. Actually you do not know, whenever update
>> was stored or not, and actually what went wrong.
>>

This is actually incorrect. If you get an UnavailableException, the
write was rejected by the coordinator and was not written anywhere.


>>> a) Suppose we are doing a ConsistencyLevel.ALL write on a 3 node cluster.
>>> My understanding is that if one of the nodes is down and the coordinator
>>> node is aware of that(through gossip), then it will respond to the request
>>> with an UnavailableException. Is this correct?

Correct

>>>
>>> b) What happens if the coordinator isn't aware of a node being down and
>>> sends the request to all the nodes and never hears back from one of the
>>> node. Would this result in a TimedOutException or a UnavailableException?
>>>

You will get a TimedOutException

>>> c) I am trying to understand the cases where the client receives an
>>> error, but data could have been inserted into Cassandra. One such case is
>>> the TimedOutException. Are there any other situations like these?
>>>

This should be the only case.

Reply via email to