On 11/12/06, David Boreham <[EMAIL PROTECTED]> 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 am perfectly aware of these. BTW, we are not mapping DIT to RDBMS' B-Trees. We are mapping DIT to Tables and they map to B-Trees. So of course there will be an overhead.
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.
I think hierarchy is a serious problem for RDBMS. You cannot select all subordinate entries of an entry in a single search. This requires a recursive search. Oracle has support for this (http://www.adp-gmbh.ch/ora/sql/connect_by.html) but non-standard.
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). 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.
We are just trying to see what it costs. So we can say do not use RDBMS but ApacheDS when it really fits your needs :-) Thanks. -- Ersin
