directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny" <elecha...@gmail.com>
Subject Re: FW: Alternate back-ends
Date Tue, 05 Jun 2007 20:08:24 GMT
Well, you are a patient guy :)

I really thought you were close to format your hard disk, and switch to
MacOsX ;)

Ok, the backend is not a simple matter (compiling the server was a piece of
cake compared to switching the backend). Anyway.

We have currently only one supported backend : JDBM. JDBM is a B-TREE
implementation written in java. It was small, and ASL 2.0 compliant, and is
pretty fast too.

Basically,we store data in ADS in what we call "partition". A partition is
just an configuration which describes the way data are to ba handled (which
indices should be create, the cache size, and eventually, the backend to be
used). A parttion contains one big table (the master table, containing all
the entries), and many tables containing the indices. We have system indices
(like DNs index, Hierarchy index, etc), and user defined indices (index on
CN, for instance, or another one on Country, whatever the user wants).

Ok this is the 50 000 feet overview.

Now, if you look ate the server.xml file, you will see that every partition
is handled by a class. For instance, the example partition ("dc=example,
dc=com"), is handled by a MutableBTreePartitionConfiguration :
<bean id="examplePartitionConfiguration" class="
org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration
">

This is the place where you describe all the parttion configuration. Now,
when the server starts, it reads all those configurations to create the
tables and the indices.

All the accessors to this partition (add, delete, search, etc) are supposed
to implementent the Partition interface. For instance, the JdbmPartition
class extends the BTreePartition which implements the Partition interface.
This is also where it start to be tricky...

Ok, 10pm here, time for me to go back home :)

Just have a look at those classes first, and come back with questions, but
I'm sure that at some point, we will be stuck somwhere ;)

Emmanuel

On 6/5/07, Barber, Dan (Contractor) <Dan.Barber@polycom.com> wrote:
>
> Emmanuel,
>
> I finally got the build working. I can confirm that ApacheDS does not
> currently build with Java 1.6. I ended up cleaning up everything again,
> uninstalling all Javas, and starting over from the beginning. With 1.5ApacheDS source
built just fine. Did the same thing with
> 1.6 and it didn't build.
>
> Ok, so I've got the source building. Now, what can you point me to for
> figuring out how to support a different database backend?
>
> Thanks!
>
> Dan
>
> -----Original Message-----
> From: Emmanuel Lecharny [mailto:elecharny@gmail.com]
> Sent: Tuesday, June 05, 2007 9:15 AM
> To: users@directory.apache.org
> Subject: Re: FW: Alternate back-ends
>
> Oh, sorry, I thoght I had answered yesturday, but as I upgraded thnderird
> in
> the meantime, I think it has been lost somwhere on the internet ...
>
> So basically, I guess you have tried with a previous version of ADS, and
> you
> have some old jars somwhere in your maven reposiory.
>
> What I suggest is that you remove completely your ~/.m2/repository (rm -rf
> ~/.m2/repository) and do a mvn clean install. It will take longer, but
> will
> be safe. (of course, if you want to keep your repository because you are
> using it for another project, just rename it).
>
> If it does not work, try with Java 1.5.
>
> Thanks !
>
> On 6/5/07, Barber, Dan (Contractor) <Dan.Barber@polycom.com> wrote:
> >
> > Emmanuel,
> >
> > Did you have a chance to look at the log file, did you see anything
> silly
> > that I am missing? Is using 1.6 not currently supported for apacheds 1.5
> ?
> >
> > Thanks,
> >
> > Dan
> >
> > -----Original Message-----
> > From: Barber, Dan (Contractor)
> > Sent: Monday, June 04, 2007 12:30 PM
> > To: 'users@directory.apache.org'
> > Subject: RE: Alternate back-ends
> >
> > Emmanuel,
> >
> > Thanks for all the help so far. I've switched to 2.0.6 of Maven. I
> > initially had installed that then switched to 2.0.4, now I've switched
> > back.
> >
> > I'm using the 6.0_01 version of the jdk.
> >
> > I've attached the log I think you were wanting to see. Let me know if I
> > need to paste it in rather than attach it.
> >
> > Thanks,
> >
> > Dan
> >
> > -----Original Message-----
> > From: Emmanuel Lecharny [mailto:elecharny@apache.org]
> > Sent: Monday, June 04, 2007 11:32 AM
> > To: users@directory.apache.org
> > Subject: Re: Alternate back-ends
> >
> > Barber, Dan (Contractor) a écrit :
> >
> > >As far as building the source. We need to target 1.5 due to it's
> > increased support for secure logins. I've been using the instructions
> from
> > this page, http://directory.apache.org/apacheds/1.5/building-trunks.html
> .
> > It's quite possible that I've just simply missed a step or done
> something
> > silly since some of these tools are still new to me.
> > >
> > >
> > >I have installed Maven 2.0.4.
> > >
> > >
> > I think you need maven 2.0.5, now (AFAIK, there are some bugs in 2.0.4
> > which can cause pbs). 2.0.6 will work too.
> >
> > Which JVM are you using ?
> >
> > >I've installed SVN and run the command
> > >svn co
> >
> http://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies/apacheds-trunk
> > >Then, inside the directory apacheds-trunk I run mvn install. Here are
> the
> > errors I'm getting.
> > >
> > >Failed tests:
> > >  testOneEntryImport(
> > org.apache.directory.server.tools.commands.importcmd.Import
> > >CommandTest)
> > >  testTenEntriesImport(
> > org.apache.directory.server.tools.commands.importcmd.Impo
> > >rtCommandTest)
> > >  testTwoEntriesImportOneOnErrorAndOneOk(
> > org.apache.directory.server.tools.comma
> > >nds.importcmd.ImportCommandTest)
> > >  testOneEntryImportWithEntryAddedNotification(
> > org.apache.directory.server.tools
> > >.commands.importcmd.ImportCommandTest)
> > >  testRFC2849Sample1(
> > org.apache.directory.server.tools.commands.importcmd.Import
> > >CommandTest)
> > >  testRFC2849Sample2(
> > org.apache.directory.server.tools.commands.importcmd.Import
> > >CommandTest)
> > >  testRFC2849Sample3(
> > org.apache.directory.server.tools.commands.importcmd.Import
> > >CommandTest)
> > >  testRFC2849Sample3VariousSpacing(
> > org.apache.directory.server.tools.commands.im
> > >portcmd.ImportCommandTest)
> > >  testExportCommand(
> > org.apache.directory.server.tools.commands.exportcmd.ExportC
> > >ommandTest)
> > >  testOneEntryImport(
> > org.apache.directory.server.tools.commands.gracefulshutdown
> > >cmd.GracefulShutdownCommandTest)
> > >
> > >My guess is I've just missed something simple. Any help you can offer
> > would be greatly appreciated.
> > >
> > >
> > It would be interesting to have the surefire logs (it's generated by
> > maven, with the failing class name followed by a .txt, like
> >
> > testRFC2849Sample2(
> >
> org.apache.directory.server.tools.commands.importcmd.ImportCommandTest.txt
> >
> > somwhere on your disk.
> >
> > Emmanuel
> >
> >
> >
>
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>



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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message