Hi Jordan, exists is a read operation, check processRequest in
FinalRequestProcessor.
-Flavio
On Nov 23, 2011, at 7:53 PM, Jordan Zimmerman wrote:
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.
-JZ
On 11/23/11 10:23 AM, "Flavio Junqueira" <[email protected]> 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.
-Flavio
On Nov 23, 2011, at 6:01 PM, Patrick Hunt wrote:
On Thu, Nov 10, 2011 at 10:29 PM, Jordan Zimmerman
<[email protected]> 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
flavio
junqueira
research scientist
[email protected]
direct +34 93-183-8828
avinguda diagonal 177, 8th floor, barcelona, 08018, es
phone (408) 349 3300 fax (408) 349 3301
flavio
junqueira
research scientist
[email protected]
direct +34 93-183-8828
avinguda diagonal 177, 8th floor, barcelona, 08018, es
phone (408) 349 3300 fax (408) 349 3301