Gustavo Niemeyer: > Hi Thomas, > > > I have a very strong feeling against more complex operations in the ZK > > server. > > Can you please describe a little better what that feeling is about? Every functionality added to ZK will make it harder to maintain. The use case you're asking for is IMHO easily solvable in a client site helper library. So there's no reason to let ZK solve your problems.
> > These are things that should be provided by a ZK client helper library. > > The > > Which things should be provided by client helper libraries? > [...] > > zkclient library from 101tec for example gives you exactly that. > > It's not clear to me what "exactly that" is in this context. I've > looked for the code and couldn't find an answer/alternative to the > issues discussed in this thread. recursiveDelete, recursiveCreate: If you want to create /A/C/D-1 just use recursiveCreate and you will end up with /A/C/D-1, even if the full parent path did not exist before. > > If you're planning to write another layer on top of the ZK API please > > have a look at https://issues.apache.org/jira/browse/ZOOKEEPER-835 > > Looked there as well. Also can't find anything relative to this > discussion. > > > I'm planning to provide an alternative java client API for 3.4.0 and > > would then propose to deprecate the current one in the long run. > > You can preview the new API at > > http://github.com/thkoch2001/zookeeper/tree/operation_classes > > And this is a full branch of ZK. Tried checking out the commit > messages or something to get an idea of what you mean, but also am > unable to find answers to these problems. The idea is to provide operation classes that can be handed around. So you can create a list of create operation and hand the full list to a specific executor. If the executor ignores NodeExists exeptions then you already have an implementation of recursiveCreate: List creates = new List {new Create("/A"), new Create("/A/C"), new Create("/A/C/D-1")} myExecutor.execute(creates) > If you actually have/know of solutions for the suggested problems > which were not yet covered here, I'm very interested in knowing about > them, but will need slightly more precise information. An alternative would be that you have a special znode in /A that signals, that the full structure has correctly been setup. Best regards, Thomas Koch, http://www.koch.ro