zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Dunning <ted.dunn...@gmail.com>
Subject Re: Multi question on using previous ops results
Date Wed, 16 May 2012 23:21:51 GMT
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 <gamache@cabotresearch.com> 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
> 

Mime
View raw message