On Fri, Aug 24, 2012 at 10:55 PM, Philip O'Toole <phi...@loggly.com> wrote:

> But consider this. Say I have a replication factor of 3. I request a
> QUORUM write, and it fails because the write only reaches 1 node. Perhaps
> there is a temporary partition in my cluster. Now, asynchronously, a
> different reader performs a QUORUM read of the same cluster and just before
> it issues the read, the partition is resolved. The quorum read is satisfied
> by the two nodes that have *not* received the latest write (yet). Doesn't
> this mean that the read does not "reflect the most recent write"? I realise
> this is very unlikely to happen in practise, but I want to be sure I
> understand all this.
>

Others might disagree, but as long as the view from the second reader
remains consistent then I see no problem. If it were to have read the newer
data from the 1 node and then afterwards read the old data from the other 2
then there is a consistency problem, but in the example you give the second
reader seems to still have a consistent view. Trying to guarantee that all
clients will have the same view at all times is working against Cassandra's
strengths.

Where quorum reads and writes are most important is when consistency is
required from the point of view of a single client.

This is besides the point that the documentation states that the sum of the
nodes written to and read from needs to be greater then the replication
factor for the statement to be true. In your example only 1 node was
written to, when 2 were required to guarantee consistency. The intent to do
a quorum write is not the same as actually doing one.

-- 
Derek Williams

Reply via email to