Ivaylo, If you're using R=1 and W=quorum then this is entirely possible. Given these settings an incoming write is only guaranteed to hit floor(N/2+1) nodes. If N=3, that would be 2 nodes. However, with R=1, you are only waiting for 1 reply before responding, which may not be one of the 2 nodes in the quorum. Reads/writes eventually propagate to all replicas though, and read-repair is initiated if necessary; hence why the results are fine after a delay. Standard eventual consistency.
To prevent this behavior, you need to have R+W > N. R=1, W=all is one N-independent option. Or, in the case of N=3, R=1, W=3; R=2, W=2; and R=3, W=1 would all be valid options depending on your desired read/write latency requirements. Regards, Joe On Thu, Oct 20, 2011 at 2:26 PM, Ivaylo Panitchkov <[email protected]> wrote: > Hello, > > We are close to production and noticed that from time to time under heavy > load newly created objects are not available immediately after their > creation. I'm running Riak 1.0.0.rc2 under Ubuntu 11.04. allow_mult: false, > last_write_wins: true, r: 'one', w: 'quorum'. Cluster of three machines with > 1GB RAM each. The same situation on Joyent's smart machine. If there is a > slight delay between the actual creation and the next read everything is ok. > > Ivaylo > > > _______________________________________________ > riak-users mailing list > [email protected] > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > -- Joseph Blomstedt <[email protected]> Software Engineer Basho Technologies, Inc. http://www.basho.com/ -- Joseph Blomstedt <[email protected]> Software Engineer Basho Technologies, Inc. http://www.basho.com/ _______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
