Thanks Nick for your answers. The blog post is very well written and was much needed i guess.
On Fri, Aug 17, 2012 at 8:30 PM, Nick Bailey <n...@datastax.com> wrote: > 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. >