On Tue, Apr 24, 2012 at 7:38 AM, Praveen Baratam <praveen.bara...@gmail.com> wrote: > I will start with a hypothetical scenario to make my question easy to > comprehend. > > Time 1: Client A updates Row 1 in CF C. N=3, W=1 > > Time 2: Client A reads Row1 in CF C. N=3, R=1 > > Can we expect the update to be seen by all replicas and reply consistently > in T2?
To get the behavior you want you need W+R > N (and Client A needs to have received confirmation of the successful write before performing the read). With W = 1, two replicas could be unavailable to the coordinator node and not receive the update. They should *eventually* receive the update, but if you read with R = 1 before they do so, it is possible that the value you are reading is a stale value from a previously unavailable node. If you used W = 2 then by the time the write successfully completes the updated value must be on 2 of the 3 replicas. A read with R = 2 then cannot complete without finding and returning the new value.