directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lécharny <>
Subject Re: DS schema export & import
Date Wed, 31 Jul 2013 19:48:32 GMT
Le 7/31/13 5:42 PM, Richard Sand a écrit :
> Totally understood. GIT may be a better solution for the client side, if you
> wanted to plug in an existing embedded client. I think what the server needs
> is a two stage process - one for committing the schema changes, the other
> for telling the server to "activate" a specific schema (head, some branch
> tag, etc). The server would evaluate/preprocess the new schema, and if the
> server doesn't like the schema provided, e.g. due to a data integrity issue,
> it would just fail then.

The initial idea was to have ApacheDS embedded into Studio, with a
versionned DIT. When you are happy with your schema, then you export it
to your remote server.

Currently, ApacheDS is already embedded in studio, so the first step is
already done.

We also have a mechanism that mimic the versionning feature in ApacheDS
: we use it for tests (when we run a test, we store a revision, and we
keep a reverted operatio of each modification applied on the server
since this revision. When the test is over - eitehr successfully or not
-, we simply apply all the reverted operation back to the revision. The
database is then back to what it was before the test started. This is
extremely conventient because you don't have to take care of any cleanup
: the test does it for you.

So in some way, we have the revision mechanism in place, except that
it's in memory. Of course, we have interfaces for all the classes in
charge of this mechanism, and we could perfectly implement another way
to handle the revert operation, based on a file containing the
modifications, allowing anyone to revert back to any revision, even if
the server has been shut down. But still, this is a work to be done.

Last, not least, the new backend is versionned, so it would be possible
to retain some revision, and rollback to an old revision without having
to implement any other mechanism. It's not yet completed, but this is an
option for the future (and it will run on the server).

Emmanuel Lécharny 

View raw message