directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <elecha...@gmail.com>
Subject Partition heads up, 2
Date Thu, 21 Jul 2011 09:26:34 GMT
Hi guys,

here is the new initialization process for partitions (summarized) :

Hierarchy :
-----------
AbstractPartition (initialize)
   AbstractBTreePartition (---)
     AbstractXdbmPartition (---)
       AvlPartition (doInit)
         AbstractLdifPartition (---)
           LdifPartition (doInit)
           ReadOnlyConfigurationPartition (doInit)
           SingleFileLdifPartition (doInit)
       JdbmPartition (doInit)
   DefaultPartitionNexus (doInit)
   SchemaPartition (doInit)


AbstractPartition
-----------------
initialize()
{
   if not initialized
     call doInit()
     initialized = true
}

AbstractBTreePartition
----------------------
-- no init --

DefaultPartitionNexus
---------------------
doInit()
{
   if not initialized
     register the controls in the rootDSE
     for each partition, do
       if the partition is not initialized, then call partition.initialize()
       update the partitionTree and the namingContexts
     done
}

SchemaPartition
---------------
doInit()
{
   if not initialized then
     set the wrapped partition's ID, suffixDn and schemaManager
     call wrapped partition's initialize() method
     create the synchronizer
}

AbstractXdbmPartition
---------------------
-- no init --

AvlPartition
------------
doInit()
{
   if not initialized then
     create an optimizer
     create a searchEngine
     create the master table
     setup the system and user indexes
}

JdbmPartition
-------------
doInit()
{
   if not initialized then
     create an optimizer
     create a searchEngine
     create the directory
     setup the system and user indexes
     create the recordManager
     create the master table
     delete unused indexes
}

AbstractLdifPartition
---------------------
-- no init --

LdifPartition
-------------
doInit()
{
   if not initialized then
     compute the directory where the ldif files are stored
     call the AvlPartition.doInit()
     if we have an existing directory
       load the entries into the AVLPartition
     else
       create the underlying files
       store the context entry in the AVLPartition (not clear where we 
get it from…)
}

ReadOnlyConfigurationPartition
------------------------------
doInit()
{
   if not initialized
     call the AvlPartition.doInit()
     load the ldif entries into the AvlPartition
}

SingleFileLdifPartition
-----------------------
doInit()
{
   if not initialized
     call the AvlPartition.doInit()
     load the ldif entries into the AvlPartition
}

-- 
Regards,
Cordialement,
Emmanuel LĂ©charny
www.iktek.com


Mime
View raw message