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

Reply via email to