zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jordan Zimmerman <jzimmer...@netflix.com>
Subject Re: More sync questions
Date Wed, 23 Nov 2011 18:53:42 GMT
Flavio, what I saw in the code (bear in mind I've only casually looked at
the code) is that getData, getChildren, etc. use the local server's view.
exists() appears to follow the same path as create(), etc. in that it goes
through the leader.


On 11/23/11 10:23 AM, "Flavio Junqueira" <fpj@yahoo-inc.com> wrote:

>In the way I understood the question, Jordan seems to have observed
>that sync() is not affecting exists (correct me if I'm wrong, please).
>If that's the case, then I believe we have a bug.
>On Nov 23, 2011, at 6:01 PM, Patrick Hunt wrote:
>> On Thu, Nov 10, 2011 at 10:29 PM, Jordan Zimmerman
>> <jzimmerman@netflix.com> wrote:
>>> A while back I asked about sync() and got responses that said it's
>>> only needed for reads (getData, getChildren). I was looking through
>>> the source and it appears that this does _not_ apply to exsists().
>>> Am I reading that correctly? i.e. will exists() always return an
>>> accurate (in terms of the leader) view of a node's metadata?
>> No, sync applies to any read. We call it "slow read" in some cases
>> because it forces the follower to get up to date with the leader.
>> Keep in mind that any read from any server is never "accurate" at
>> least in the sense that you likely mean it. e.g. the state of
>> leadership may change btw the time the server responds to your exists
>> call and the time it takes for TCP/OS to propagate the response to
>> your client.
>> http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
>> Patrick
>research scientist
>direct +34 93-183-8828
>avinguda diagonal 177, 8th floor, barcelona, 08018, es
>phone (408) 349 3300    fax (408) 349 3301

View raw message