Will sync and read really help to achieve what Yasin wants ? is it not possible for value to change between sync and read?
Thanks Kishore G On Thu, Feb 28, 2013 at 9:32 PM, Rakesh R <[email protected]> wrote: > Hi Yasin, > > Adding one more point, > > ZooKeeper provides different ways of achieving data sync. Like Alex & > Vladimir explained, sync() api is one way and it has the overhead of > performance. > > Another approach is to define Watchers. This also will be helpful to keep > in sync the data between the clients. Its internally using the asynchronous > way of notifying different events. Also, its very light-weight and here > user/client should define specific watchers to achieve the synchronized > view of data. > > ZK supports various events like NodeDataChanged, NodeChildrenChanged. > Since it is asynchronous, there will be slight latency in recieving the > events. > > Reference: > > http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches > Section: •The data for which the watch was set > > > http://zookeeper.apache.org/doc/r3.2.2/zookeeperTutorial.html#sc_producerConsumerQueues > > -Rakesh > ________________________________________ > From: Alexander Shraer [[email protected]] > Sent: Friday, March 01, 2013 5:19 AM > To: [email protected] > Cc: [email protected] > Subject: Re: Consistency in zookeeper > > Hi Yasin, > > I assume you mean "linearizability" by "strict consistency". > > ZooKeeper provides "sequential consistency". This is weaker than > linearizability but is still very strong, much stronger than "eventual > consistency". > In addition, all update operations are linearizable as they are > sequenced by the leader. With sequential consistency, a reader never > "goes back in time" > even if you read from a different follower every time, you'll never > see version 3 of the data after seeing version 4. > > ZooKeeper also provides a sync command. If you invoke a sync command > and then a read, the read is guaranteed to see at least the last write > that > completed before the sync started. So if you always do "sync + read" > instead of just "read", you get linearizability. But you pay in > performance since > these reads will no longer be executed locally on the follower to > which you're connected - they sync is sent to the leader. That's why > ZooKeeper gives > you the option of doing a fast read that is consistent but may > retrieve a slightly old version, or a sync+read that is more > consistent but slower. > > Alex > > On Thu, Feb 28, 2013 at 3:35 PM, Yasin <[email protected]> wrote: > > Hello everyone, > > > > From the zookeeper website I understand that zookeeper does not provide > > strict consistency in every instance in time. > > ( > http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkGuarantees > ) > > Have ever anyone considered to make zookeeper strictly consistent at > > anytime. What I mean is that any time a value is updated in zookeeper, > any > > client that retrieves the value from any follower should get consistent > > result. Is it feasible to improve the zookeeper core so that zookeeper > > delivers strict consistency not the eventual consistency? > > > > Best > > > > Yasin > > > > > > > > -- > > View this message in context: > http://zookeeper-user.578899.n2.nabble.com/Consistency-in-zookeeper-tp7578531.html > > Sent from the zookeeper-user mailing list archive at Nabble.com. >
