zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Gamache <gama...@cabotresearch.com>
Subject Multi question on using previous ops results
Date Wed, 16 May 2012 15:59:14 GMT
I need to do something like the following:

Stat stats = nodeToSet.getStat();
if (stats != null) {
     int version = stats.getVersion();
     stats = client.getZk().setData(path, data, version);

(data was preset in code not shown).   Since I have multiple processes 
all vying to do things, in the worst case (which happens too 
frequently), two processes execute the above at basically the same time, 
which causes errors.   I thought I might be able to use Multi to do this 
atomically, but I cannot figure out how to use the result (the version 
number above) from one Op in a later Op.  Is this possible?

This was the simplest example I could find, but this happens often - 
usually with Paths.  For instance, sometimes I create a zookeeper node 
and want a "LOCK" node underneath it.  If I follow the "recipe" and use 
an ephemeral sequential node as the lock, how can I refer to sequence in 
a Path in subsequent Op added to a "multi" or is there any way to do it 
atomically?  Sorry that was so very wordy.  What I was really trying to 
ask, is how do I create and lock a node atomically?

thanks for any help, insight!


View raw message