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.