Are you sure?  I haven't dug deeply into PathChildrenCache but TreeCache
definitely does not work this way.  The act of re-registering the watcher
is what fetches data.  Let me amend your event list:

-Watch children of /X
-Node /X/1 added
-TreeCache receives the ZK event for /X children changed
-Node /X/2 added (this event would be missed).
-TreeCache calls getChildren(/X) to re-register the watcher, sees both /X/1
and /X/2
-TreeCache publishes events for both /X/1 and /X/2

I looked at PathChildrenCache just a little and it looks like it might work
the same way.


IIRC, the kinds of events that might be missed are this:

-Watch children of /X
-Node /X/1 added
-TreeCache receives the ZK event for /X children changed
-Node /X/2 added (this event would be missed).
-Node /X/2 deleted (this event would be missed).
-TreeCache calls getChildren(/X) to re-register the watcher, sees only /X/1

In this case, TreeCache would never know about the existence of /X/2 since
it was created and deleted without the client being able to "see" it.  This
is a limitation in ZK's design.

On Sun, Oct 23, 2016 at 10:44 PM, Cameron McKenzie <[email protected]>
wrote:

> Ordering should be consistent. There is always the possibility of missing
> a CHILD_CREATED event (or any other event), if it occurs in between the ZK
> client being notified of an event and before the client has reregistered
> the watch.
>
> i.e.
>
> -Watch children of /X
> -Node /X/1 added
> -Client is notified of /X/1 child created event
> -Node /X/2 added (this event would be missed).
> -Client reregisters watch for children on /X
>
>
> On Mon, Oct 24, 2016 at 1:15 PM, Imesha Sudasingha <
> [email protected]> wrote:
>
>> Thank you for the response.
>>
>> Yes, I'm aware of the conditions of an eventually consistent system. What
>> I wanted to know was, is there any possibility for the PathChildrenCache to
>> emit CHILD_CREATED like events out of order and what is the possibility of
>> missing such event?
>>
>> Regards,
>> Imesha Sudasingha
>>
>> On Oct 21, 2016 7:12 PM, "Jordan Zimmerman" <[email protected]>
>> wrote:
>>
>>> PathChildrenCache[1] is the solution you have provided to watch on a
>>> given node without using native zookeeper watchers.
>>>
>>>
>>> PathChildrenCache uses native watchers. Have a look at the source.
>>>
>>> Can anyone please clarify how the above effect can affect the accuracy
>>> of events listened?
>>>
>>>
>>> The point of that message is to remind you that ZooKeeper is an
>>> eventually consistent system. You are always seeing the view that the
>>> server you are connected to has. This is a feature of ZooKeeper, not
>>> Curator.
>>>
>>> Hope this helps.
>>>
>>> -Jordan
>>>
>>> On Oct 21, 2016, at 4:44 AM, Imesha Sudasingha <[email protected]>
>>> wrote:
>>>
>>> Hi all,
>>>
>>> I have been using apache zookeeper. Now I'm willing to switch to
>>> CuratorFramework as it contains many useful recipes inbuilt.
>>>
>>> PathChildrenCache[1] is the solution you have provided to watch on a
>>> given node without using native zookeeper watchers. As I went through the
>>> API [1] documentation, the following ambiguous sentence has caused me to
>>> think twice as I want consistency accuracy for my implementation (such as
>>> not missing CHILD_CREATED events).
>>>
>>> "it's not possible to stay transactionally in sync. Users of this class
>>> must be prepared for false-positives and false-negatives. Additionally,
>>> always use the version number when updating data to avoid overwriting
>>> another process' change."
>>>
>>> Can anyone please clarify how the above effect can affect the accuracy
>>> of events listened? And is there a way to w atch on a given node without
>>> using Zookeeper watchers and PathChildrenCache?
>>>
>>> (PathChildrenCache has the functionality I required. But the above
>>> description in the API docs matters me)
>>>
>>> Thanks in advance!
>>>
>>> [1] https://curator.apache.org/apidocs/org/apache/curator/fr
>>> amework/recipes/cache/PathChildrenCache.html
>>>
>>> Regards,
>>> Imesha Sudasingha
>>>
>>> --
>>> *Imesha Sudasingha*
>>> Undergraduate of Department of Computer Science and  Engineering,
>>> University of Moratuwa.
>>> +94717086160
>>> View in Linkedin <https://lk.linkedin.com/in/imeshasudasingha>
>>>
>>>
>>>
>

Reply via email to