Hi guys,

as I'm slowly refactoring the data structure we use to manage NamingContexts, I just realized that we may have a way to handle encapsulated partitions...

One of the Graal we were chasing was the possibility to define encapsulated partitions. Let me give you an example :

if we define dc=example,dc=org as a naming context, then we have to define a dedicated partition (be it JDBM, LDIF, HBase, in-memory, SQL-based). That's good, but if we want to define a sub-partition for, say ou=apache,dc=example,dc=org, we currenty can't. That means this ou=apache... thing will be stored in the same backend than the partition it's defined into (dc=example,dc=org).

We also have some issue currently, like DIRSERVER_1517 : we can't move an entry from one partition to another one (this is a bug)

Ok, how can we manage encapsulated partitions ? Here is one idea I had :
- what about leveraging the X500 administrative model ? We currently can manage AccessControl, CollectoveAttribute, SubSchema (even if we don't support it atm), TriggerExecution, so why not add a new role, the PartitionLayout role which defines a new partition starting at the defined Administrativepoint ?

So a partition is a role, defining the storage, and all of it's characteristics, using a subentry for that. Of course, a PL AP won't be an Inner AP. We won't allow any subtree specification for this subentry, and the base will always be the AP. It should work.

Now, a few more thoughts : the current partitions configuration is stored into the ou=config partition (a LDIF partition). How can we continue using this config partition in sync with the subentries ? What if subentries are just aliases pointing to the config partition ? As we have to load all the subentries at startup, it would be far easier to do that if they are stored into the config partition.

Ok, those are just ideas, but I think it can fit well with the big picture.

feel free to comment !

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to