On Thu, Jan 6, 2011 at 12:42 PM, Stefan Seelmann <seelmann@apache.org> wrote:
>>> I would get the Database Format and Configuration out of the equation.
>>> It's
>>> up to us to provide tools to migrate from one format to the other. Don't
>>> get
>>> me wrong : when I say that configuration is out of the equation, I mean
>>> that
>>> the configuration can change, not its format (ie switching from XML to
>>> DIT
>>> is possible between to major releases, not between two minor releases).
>> Will this be transparent to the user? Meaning can he just upgrade the
>> software and the migration will occur without any change in their
>> workflow,
>> or anything noticeable in performance, wait time on startup? More
>> specifically:
>> (1) Does the user have to run a tool to migrate from one version to the
>> next
>> ?
> Definitively, yes.

I think the database format must be stable between micro (bugfix) and
minor (feature enhancement) releases. For major releases it is
acceptable to change the format and to provide a migration tool.

This is exactly what I am trying to get consensus on.  The DB format impacts compatibility and so it's something we must consider based on our versioning scheme.

But with this milestone approach we only have to lock in the format when we reach the RC stage.
Please keep in mind that the current JDBM format is not final yet. We
introduced the RDN index for fast moddn operation, but still have the
oneLevel, subLevel, and alias indices that are not updated in O(1).

Good point. Yet these indices present a different problem entirely, actually it's only the subLevel index which is an issue. Quickly without diverting from this thread's central point let me jot down some immediate thoughts.

History & Background

The DN index that was replaced with an RDN index gave us O(1) moddn operation speed. By not having to update all DN indices, due to a single RDN component index entry update we gained the speed (also stability/atomicity) advantage. 

The same does not apply to subLevel which maps the IDs of ancestors entries to descendants. The oneLevel index is not a worry (still an O(1) operation) since a moddn impacting a parent child relationship is a single update. 

Remaining Potential Performance Problem 

Serious performance problems and issues with atomicity may still result from the subLevel index with moddn operations since this can impact millions of index entries.

Unfortunately, unlike the RDN index/DN index technique, we don't have the same simple solution. Once the ancestor, to descendent relationship is broken with a moddn, these index entries must be updated. 

Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu