directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny <>
Subject Index init and rebuilding
Date Tue, 13 May 2014 09:58:00 GMT

we have had some issues recently for people wanting to add a new index
on an existing database. So far, the M16 version is supposed to fix most
of the existing pb, but we still have to review the way we initialize
indexes and creating them when requested.

There are a few things to remember :
o we have two versions of the server : embedded and standalone. They
have two different configurations (one is done through code and
annotations, while the second is using the config ldif file)
o the index initialization is done in two phases :
  1) we load the configuration
  2) we create the index instances
o When an index is declared in the config, and does not exist on disk,
then it has to be created at startup
o we have two kind of indexes : system and users. Only the later can be

Now, the initialization is done in two places :
o in the AbstractBtreePartition init() method, and it's shared by all
the partitions
o in each init() method of each partition.

At this point, we do something like :

  - load the index config
  - call super.init
  - create the indexes

The creation of new indexes is supposed to be done in the third step,
but it depends on the first step, as we won't create anything that has
not been loaded.

It's supposed to work, but I do think we need to review this part of the
code for each partition we support, because we have seen a long list of
issues with this critical part of the code.

I will create a JIRA for this task, and as soon as we have checked each
specific use case, we wil be able to update the JIRA, up to the point we
are sure that all the bases are covered.

wdyt ?

View raw message