You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Kiran Ayyagari <ay...@gmail.com> on 2009/08/02 16:48:40 UTC

[ApacheDS] do we need a special partition for CiDIT?

hello guys,

       As a second step in getting the CiDIT [1] am currently implementing a new partition which uses
       LDIF files as backend, however as I go deeper in implementation(atm the partition supports add operation)
       I asked a couple of questions to myself which I would like to share and seek opinion on

       1. Instead of creating a whole new partition impl for storing CiDIT can we use the existing (and well tested)
          JDBM partition?

          The JDBM based partition stores data in binary format but in order to make the configuration editable using
          a simple text editor I propose the following steps

          a. After initial startup of server the default configuration will be dumped to the file system as a single
             LDIF file or as a set of directories and LDIF files( mimicking the DIT structure)

          b. A watchdog thread will keep listening on this file(s) for changes

              i. any change of type update/delete done to the content of file(s) will be reflected in
                 the CiDIT accordingly, but

              ii. If the file itself gets deleted we *don't* delete the configuration data in DIT but simply dump
                  that data again to file system. To delete the configuration data completely the corresponding
                  partition needs to be physically removed from the disk in which case the system restores the
                  default configuration during the next startup

          c. similarly this file(s) gets updated if the configuration data DIT gets updated


   thanks for your time and I appreciate your comments :)

   P.S:- Though implementing a partition is not difficult it is certainly not trivial, am thinking in terms of
         maintaining code and the amount of configuration required for each new partition impl to be used in server
         and also considering the time we have to implement replication support in 2.0


[1] http://cwiki.apache.org/confluence/display/DIRxSRVx20/ADS+2.0+configuration

Kiran Ayyagari

Re: [ApacheDS] do we need a special partition for CiDIT?

Posted by Emmanuel Lecharny <el...@apache.org>.
Kiran Ayyagari wrote:
> hello guys,
>
>       As a second step in getting the CiDIT [1] am currently 
> implementing a new partition which uses
>       LDIF files as backend, however as I go deeper in 
> implementation(atm the partition supports add operation)
>       I asked a couple of questions to myself which I would like to 
> share and seek opinion on
>
>       1. Instead of creating a whole new partition impl for storing 
> CiDIT can we use the existing (and well tested)
>          JDBM partition?
Well, at first sight, I don't think it's a good idea. The initial target 
was to allow an admin to manipulate the conf without having to use a 
tool to change the config. Being able to modify the conf with 
vi/emacs/notepad is always a good thing compared to having a broken conf 
in an opac file. But ...
>
>          The JDBM based partition stores data in binary format but in 
> order to make the configuration editable using
>          a simple text editor I propose the following steps
>
>          a. After initial startup of server the default configuration 
> will be dumped to the file system as a single
>             LDIF file or as a set of directories and LDIF files( 
> mimicking the DIT structure)
What if the JDBM file is broken ?
>
>          b. A watchdog thread will keep listening on this file(s) for 
> changes
>
>              i. any change of type update/delete done to the content 
> of file(s) will be reflected in
>                 the CiDIT accordingly, but
>
>              ii. If the file itself gets deleted we *don't* delete the 
> configuration data in DIT but simply dump
>                  that data again to file system. To delete the 
> configuration data completely the corresponding
>                  partition needs to be physically removed from the 
> disk in which case the system restores the
>                  default configuration during the next startup
>
>          c. similarly this file(s) gets updated if the configuration 
> data DIT gets updated
>
>
>   thanks for your time and I appreciate your comments :)
Ok, I see where you want to go : basically, guarantee that the config 
can be read as we know that if it's JDBM packed, the partition will 
work. I would say that as a first step, to debug the config itself (ie, 
to check that all the parameters are OK), we can do that. But at the 
end, I really think we must go for a text based config.
>
>   P.S:- Though implementing a partition is not difficult it is 
> certainly not trivial, am thinking in terms of
>         maintaining code and the amount of configuration required for 
> each new partition impl to be used in server
>         and also considering the time we have to implement replication 
> support in 2.0
IMO, writing  a new partition bascked by ldif files should not really 
take much more than 2 weeks. But as we really need to have some config 
element for the replication subsystem, and if going with JDBM backed 
config will help, I would say : go for it.

Thanks !


>
>
> [1] 
> http://cwiki.apache.org/confluence/display/DIRxSRVx20/ADS+2.0+configuration 
>
>
> Kiran Ayyagari
>


-- 
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org