> I read the logic of why writes are not allowed.  But other alternative is to
> allow write and just fail the reads until it's in sync again. Is there some
> other problem with this logic?

The problem lies in "until it's in sync again". A given node cannot
easily know for a given read, whether "everything is in sync" with
respect to the data participating in that read. I didn't think about
it very carefully, but off the top of my head, in the most general
case this would seem to require strong co-ordination that is
antithetical to the design of Cassandra.

(Consider that for a read of a set of columns, for each column the
node would have to know whether the nodes participating in the read
have any hints pending in the cluster. Since the co-ordinating node
cannot know the context in which the call is made (maybe the client or
some other client *just* wrote at quorom with nodes down), this
essentially implies co-ordination on every read, at all times.)

-- 
/ Peter Schuller

Reply via email to