ZOOKEEPER-1416 is another way of solving the problem of watching a sub-tree
-- Thawan Kooburat On 7/17/13 10:50 PM, "kishore g" <[email protected]> wrote: >Good idea beware of failure scenarios. > >lets say you do >#1. parent.setData #2 child.setData > >your watch might be triggered and when you read the children child may not >be changed yet. so u will miss the child data change > >other option is >#1 child.setData #2 parent.setData >if you fail after setting the child data, there wont be any watch >triggered. > >Only option is probably doing child.setData and parent.setData in the same >transaction and probably the multitransaction can be helpful. But if you >are updating children often the multitransaction might fail quite >frequently because of concurrent updates on the parent > >I think its better for zk to solve this problem the right way. Instead of >solving the problem of large number of watches in zk, it might be a better >idea to add the concept of watching childDataChange in zookeeper. I dont >think the implementation will be any more complicated than triggering >watches for child creation. > >Thoughts ? > > > > > >On Wed, Jul 17, 2013 at 6:23 PM, Benjamin Jaton ><[email protected]>wrote: > >> Thanks, the JIRA is very interesting. >> >> I am contemplating the possibility to make a parent.setData(..) call to >> notify of a change in one of the children and put a watcher on >> parent.getData(). >> I would then iterate through the children and compare the >>stat.getVersion() >> to figure out which have changed. >> >> >> On Wed, Jul 17, 2013 at 5:30 PM, Flavio Junqueira <[email protected] >> >wrote: >> >> > Hi Ben, >> > >> > Your description seems right to me, assuming that when you refer to >> > changes to the children, you mean setting the data of the children. >> > >> > You may also want to have a look here if you haven't done it yet: >> > >> > >> > >> >>http://zookeeper.apache.org/doc/r3.4.5/zookeeperProgrammers.html#ch_zkWat >>ches >> > >> > About performance impact, you may want to have a look at the >>discussion >> > here: >> > >> > https://issues.apache.org/jira/browse/ZOOKEEPER-1177 >> > >> > -Flavio >> > >> > On Jul 18, 2013, at 12:25 AM, Benjamin Jaton <[email protected]> >> > wrote: >> > >> > > Hello, >> > > >> > > I would like to be notified of a change on any of the children of a >> znode >> > > (could be a lot of them). >> > > >> > > AFAIK to achieve this we need to set a watcher on each child and >>then >> > also >> > > watch the parent to be aware of children addition/deletion and >> add/remove >> > > watchers accordingly. Is that correct? >> > > >> > > What is the performance impact of having for example thousands of >> > watchers? >> > > >> > > Thanks, >> > > Ben >> > >> > >>
