Juergen Weber a écrit :

On 2/7/07, Alex Karasulu <[EMAIL PROTECTED]> wrote:


>> Has anybody tried a Derby backend for ds?

BTW I inquired about using Derby with Debrunner a few years ago at an
AC.  He basically stated that it would be a bad move since Derby would
be challenged to deal with hierarchies.


Well, IBM's LDAP Server for z/OS does use DB2 as backend and it's very fast.

Sure. I already saw IBM IDS + DB2 managing more than 70 000 000 entries without a pb.

<note>
I don't want to enter into a religious war here...
</note>

But "very fast" means almost nothing, if you can't compare it to something else. How "Very fast" is faster than "fast" or "slow" ?

What is important with using a RDBMS as a backend is not only performance. You have much more than that : - public acceptance : Oracle, DB2, ... are almost everywhere. It would be bad to ignore this fact
- fault tolerance/reliability : do I have to add anything?
- transaction support. RDBMS support it natively
- Knowlegde : so many DBA, so few JDBM programmers...
etc...

<note>
End of the potential religious war. You are returning back to the agnostic zone :)
</note>


Of course you have to map hierarchical data structures to tables but
IBM showed that this is possible.

It is definitively possible. No doubt.


This http://www.openldap.org/faq/data/cache/378.html OpenLdap FAQ
entry more or less discourages from an SQL backend.
But in this same FAQ entry Kurt Zeilenga gives a link to an IBM paper
describing their database backend which quotes good performance (which
matches our user experience with the z/OS LDAP server).
http://www.research.ibm.com/journal/sj/392/shi.html

They are both interesting papers, but both a little bit outdated. Anyway, the rational for using something different than a RDBMS is pretty clear.


A JDBC backend for DS could combine fast Java network and data
structure handling with a fast Enterprise DBMS.

For embedded use Derby should serve well.

End of '05 I ran some transaction tests against Derby and got about 20
TX/sec on my PC which seemed very fast to me.

FYI, as of mid-june 2006, we did some tests and compared ADS and OpenLdap on a simple desktop (one CPU, 3Mhz, 1 Gb). Open ldap was able to do up to 1500 search per second, and ADS went up to 900 search req/s.

Does it mean the number you obtained is slow ? No. My bet is that they will be perfectly OK for 99% of all the Ldap Server installed around the world. And that you may also use a more powerfull computer to obtain better perfs.

As transactions are not very important for LDAP servers, only read
performance would matter.

Very true. This is why your 20 TX/sec are not really meaningfull for a Ldap server. Without transaction, I won't be surprised if we get much better numbers.

It would definitely be interesting to have numbers for Berkeley DB
(which of course is not relational).

Well, I think it's close to the numbers we have found.

But I want to stress a point : those numbers mean nothing at all by themselves. The question is not to have the fastest LdapServer on earth, but much more to have a powerfull server, which can evolve, easy to manage, easy to install, reliable, scalable, easy to support...

Using a RDBMS as a backend is a must in this kind of scenario (IMHO).

Now, you have also to ponder this with other points :
- workforce to implement it : we are all volunteers, working on ADS out of day job, during evening, night and week-end - users needs : we don't really have time to test and experiment all the possible solutions. Then it's all about choice. We do choice, every day, everytime. I hope that those choices are not the worst we could do, but we may be wrong from time to time :) - knowledge : sometime you favor a technology against another one because of limited knowledge. (you might feel so confortable with a piece of software that you prefer to use it well than having a limited use of another component you don't really know)

Here we are. We really want to use a RDBMS system for many reasons. We didn't found the time to explore this solution up to now. We need other volunteers to help us :)

Just join the effort ! We will really appreciate new blood and new vision : Apache community is just all about that !

Emmanuel


Juergen

PS: We already use Derby inside Apache DS (in the 1.5 version) : The Multi-Master replication mechanism use Derby as a repository.

Reply via email to