[Date Prev][Date Next] [Chronological] [Thread] [Top]

HDB Tuning

Hi list,

Weâve been doing some performance testing comparing LDBM to HDB to present the business case for an upgrade but currently getting some surprising results.

A thousand searches (run consecutively) on LDBM is taking around 70 seconds to complete, whereas the same data is taking 1.2-1.3s per search with HDB.  Iâve done some basic fiddling with the DB_CONFIG file and have not appeared to change the results at all.  Iâve adjusted the cache size (in DB_CONFIG) to 50 meg, 500 meg, 768 meg and 1gig and Iâve played with different txn log methods (in memory, autoremove, regular logging).  I am running db_recover afterwards.

The machine specs are identical (Dual P3 1266MHz, 1.25GB RAM) but Iâve also replicated it on a Dual 3GHz Xeon w/2GB RAM.  The OpenLDAP versions didnât seem to matter (currently running on 2.3.32, also tried 2.3.30 & 2.2.26).  The OS has been either Debian or Ubuntu linux.  Running Berkeley DB 4.2.52.

With trace & args logging enabled (-d5) the pause is on the first line of this output:

=> hdb_dn2idl("BASE_DN")				<-- this line
=> bdb_equality_candidates (objectClass)
=> key_read
bdb_idl_fetch_key: [b49d1940]
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: id=0, first=0, last=0
=> bdb_equality_candidates (uid)
=> key_read
bdb_idl_fetch_key: [78cb9f8c]
<= bdb_index_read 1 candidates
<= bdb_equality_candidates: id=1, first=666704, last=666704
bdb_search_candidates: id=1 first=666704 last=666704
entry_decode: ""
<= entry_decode()
=> send_search_entry: conn 0 dn="cn=291232744,BASE_DN"
ber_flush: 810 bytes to sd 12
<= send_search_entry: conn 0 exit.

The other line that has me worried is the 5th line (bdb_index_read: failed (-30990)), I've run slapindex to restore indices but this didn't help or remove the error message.

Can anyone shed any light as to where this lag might be coming from?  Can I provide any more info to help?

Mark McDonald