It looks like you are assuming that the versions of two znodes are 
synchronized. That seems pretty dangerous. 

What is the higher level intent here?  Would it better to simply build a multi 
to update both znodes?

Sent from my iPhone

On May 16, 2012, at 11:59 AM, Joe Gamache <[email protected]> wrote:

> 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!
> 
> joe
> 

Reply via email to