zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vinayak Borkar <vbo...@yahoo.com>
Subject Op.Check in ZooKeeper.multi and cversion
Date Wed, 13 Mar 2013 16:44:07 GMT

I have a case where I need to create a new node (N) as a child of a node 
(P) only if the existing set of children satisfies a certain condition. 
In my code I was planning to fetch the list of children (along with the 
parent's cversion), verify if the condition on the existing set of 
children allows me to add a new node, and then in a multi() invocation 
create a child only if the cversion of the parent is the same as what I 
had witnessed before.

However, I see that the Op.Check operation only allows me to check the 
data version of a node and not the cversion.

I see that a slightly more expensive work-around would be to make sure 
that every mutation that adds or removes children to/from P also makes a 
data change to P so that I maintain the invariant that cversion == 
version for P and then just use Op.Check.

Is there a better way to solve my problem?


View raw message