directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny" <>
Subject Re: ApacheDS partition implementation based on Relational Model
Date Sun, 12 Nov 2006 10:23:19 GMT
On 11/11/06, David Boreham <> wrote:
> >> > If we go to RDBMS, this would be the worst approach. It is suppose
> >> to be
> >> > a relationnal model, not an hierarchical model mapped on a
> relationnal
> >> > model. Performance will be awfull
> >
> I missed a few iterations in this thread (been busy with the day job),
> but some late thoughts:
> 1. Have you looked at what's inside a RDBMS engine ?
> B-trees and query processing that's much the same as
> the average directory server. So mapping the DS's b-tree
> relations to tables (which are themselves implemented as
> b-trees) is not imho an inefficient approach.

I'm in the business since 1988, and I did a RDBMS specialisation while I was
a student. I think that you didn't understood what I said (may be I wasn't
clear enough :) : that a _direct_ mapping of actual b-trees would be really
unefficient _because_ RDBMS already use b-trees for index.So you just can't
map JDBM structure to a RDBMS structure, it would induce creation of useless
tables (in fact, all index can be removed). At the end, what we could have
in a RDBMS would be something like 2 tables : one for entries, and one for
attribute values, final. Everything else will be index. (plus one table for
partitions, of course).

2. the dit hierarchy is  really a non-problem for RDBMS
> mapping -- after all DS'es that use b-tree storage managers
> directly already have the same identical problem to solve.
> the average DIT is not very bushy nor deep anyway.

That's true.

3. If you are concerned about performance, don't use
> a RDBMS. The approach already chosen for Apache DS
> is the most performant (possibly needs some work, but
> it's the right way to go for performance).

I  would bet 1000$ on this too, but only because you will have to request
the RDBMS system through a network layer while you have direct access to
JDBM. However, this is not a debate, just a feeling, because I never
compared in real life the performance of each approach.

4. Attempting to 'really use' the relational data model for
> directory entries takes us back to the previously mentioned
> relational mapping science project. (Customer already
> has a bunch of tables in Oracle, and we need to refect
> those via LDAP) Certainly an interesting
> field to study, but there's no obvious good way to solve
> this problem that I know of. Virtual Directory and sync
> (meta) type solutions have addressed this area for
> years with a fair degree of success.

I think you are mixing different concerns, like "Using a RDBMS as a backend"
and "Synchronizing different sources of data". The initial question (from
Ersin) was : "How can we implement a RDBMS as a backend for ADS". This is
something which is possible, and efficient, and IBM proved it. The second
point deserve another approach (Virtual Directory/Meta Directory is a
solution), but you started another thread for that, and this is a good thing

Emmanuel L├ęcharny

View raw message