zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mattias Persson <matt...@neotechnology.com>
Subject Node being there and not at the same time
Date Thu, 23 Aug 2012 10:30:52 GMT
Hi,

I've got a problem that I've seen at only a few occasions and which
confuses me a bit. Basically I construct a ZooKeeper client (I'm running
version 3.3.2) where there's a ZK quorum of size 3 running. I get a
SyncConnected event in a Watcher of mine and in that watcher I do a
get-or-create(-if-absent) behaviour where I first do a:

  zooKeeper.getData( myPath, false, null );

if that produces a NONODE code I'll try to create it with:

  zooKeeper.create( myPath, smallByteArray, OPEN_ACL_UNSAFE, PERSISTENT );

If that fails with NODEEXISTS code I'll just get it, assuming someone else
made it before me. What I see from this getData call that I do after
getting this NODEEXISTS code, which is the same as the first one btw, is
that I'll get a NONODE code back. Given in this scenario is that I'm 100%
certain that this node exists in the quorum at myPath in the first place
even.

Questions:
1) How can this happen?
2) Do I use ZooKeeper here in an improper way?
3) Will a later version fix any potential issue I might have hit?
4) What's the guarantees around the state of my ZooKeeper instance after a
receive a SyncConnected event, is it fully synced with the master at that
point, or will a call to sync() be necessary first?

Best,
Mattias

-- 
Mattias Persson, [mattias@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message