Performance Comparisons with Relational Databases
Background
In order to populate a relational database with information from LDAP it is first necessary to translate the information schema. After the relational database has been created information can be extracted from the LDAP database, translated and added to the relational database.
Test Environment
MySQL (version 5.0.45) database and a native LDAP client. The OpenLDAP (version 2.2.13) and MySQL server run on the same hardware (SLC 4.5, Xeon 2.4Ghz, 1GB Memory). The Oracle RAC (Real Application Cluster) instance consits of two nodes with a replicated database.
Test Description
The first set of tests evaluated the response times for different API implementations. The following queries were used.
SQL Query for API Test:
SELECT * FROM GlueSA, ValueTable, TypeTable
WHERE VALUETABLE.PARENTID=GLUESA.ID
AND VALUETABLE.TYPEID = TYPETABLE.TYPEID
AND TYPETABLE.NAME ='GlueSAAccessControlBaseRule'
AND VALUETABLE.VALUE='lhcb'
LDAP query for API Test:
ldapsearch -x -LLL -h lcg-bdii:2170 -b o=grid '(&(objectClass=GlueSA)(GlueSAAccessControlBaseRule=lhcb))'
Test Results
Oracle
All client implementations use the
Oracle libs available from AFS.
MySQL
Medium Response Size
Large Response Size
The Response Size significantly differs between LDAP and the relational model