[Date Prev][Date Next]
Re: Performance of OpenLDAP with a MySQL Backend
I work on somewhat similar backend that uses RDBMS. Though my purpose is not in
writing most efficient backend that uses RDBMS as storage, I primarily plan to PRESENT
EXISTING databases as LDAP trees, and then use LDAP as unified way do exchange
information resources between heterogeneous databases (heterogeneous in terms of
OS,RDBMS vendor, and schema itself). I think my purpose is general enough to offer it
to OpenLDAP. These purposes dictate design which is definitely not the most efficient
way to implement just a backend specialized in storing data in RDBMS, though you can
easily use it this way. We could discuss which way IS efficient if you decide to write
your own backend - we both could get some fresh ideas.
Nevertheless, you could review current state of my backend (ITS#405) at
ftp://samovaar.dot.ru/pub/openldap/ as Kurt suggested.
It contains several things that are definitely common to either backend, such as RDBMS
communication. I use iODBC under Unix and MS ODBC32 under Win32, which allows using
not only MySQL, but any other ODBC-compliant RDBMS. I'm working with MS SQL Server
now, periodically testing things on Oracle 8 and mySQL. Things like connection
handling etc. could be reused also, and other parts (depending on design you plan for
BTW, now I'm close to publishing new milestone, incorporating all changes suggested,
things requested by Kurt to add it to CVS repository, and also major changes
considering query processing.
Later this day I'll publish current sources for you to review (something like
"openldap_sql_newest.tar.gz"). Now it features conversion from LDAP search filter to
SQL WHERE clause, which helps loading candidate IDs with single query for each
objectclass. Then it uses per-attribute queries to load entries (previous solution
with single query loading all data turned out unusable with some complex schemas I had
to deal with). Also you can see how write operations will be implemented through
stored procedures - I just began coding, but things I've already written must give an
idea - see backsql_add()
In a few days I hope I'll be able to update status of ITS(#405)...
Any comments and suggestions are welcome
Joao Abrantes wrote:
> I have been thinking about using OpenLDAP to host a large user comunity.
> Since, from what I understand, all the backends are hash based, should it
> not perform faster with a MySQL backend?
> I am willing to write the backend but I would like to hear your comments on
> this subject first.
> Best regards,
> Joao Abrantes