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