Re: [RFC] OpenLDAP automatic upgrade
Torsten Landschoff <torsten@debian.org> writes:
> Hi Quanah,
> On Thu, Mar 17, 2005 at 03:39:09PM -0800, Quanah Gibson-Mount wrote:
>> > Is there a way to enforce this without editing DB_CONFIG? I'd rather set
>> > an environment variable or something like that. Writing that into
>> > DB_CONFIG in the maintainer scripts always poses the risk that it'll
>> > stay.
>>
>> Well.... This will be available in OpenLDAP 2.3 via the "-q" option to
>> slapadd. I have my own backported patch to OpenLDAP 2.2 that enables the
>> "-q" option.
> Care to share that patch? :)
Torsten,
You can find the patch for adding "-q" to slapadd on OpenLDAP 2.2 here:
<http://www.stanford.edu/services/directory/openldap/configuration/openldap-build-42.html>
I've been reading back over my notes on the problems OpenLDAP has with BDB
4.3, and I believe that this patch will resolve those issues as well (as
long as it is used to load a DB, rather than without the "-q" flag).
The main issue is that the way BDB 4.3 creates transaction logs in the
quickload scenario is to use
setflags DB_LOG_INMEMORY
That particular function when combined with how OpenLDAP loads data often
results in the server running out of memory, and the entire environment
becoming corrupted. The "-q" patch completely disables the creation of
any logs by either BDB 4.2 or BDB 4.3, and significantly decreases the
amount of time it takes to load a database.
I would note that it would likely be good for Debian to still include a
DB_CONFIG file in the database directory it creates with its OpenLDAP
distribution, as the default settings from Sleepycat are entirely too
small.
Here are some examples. All examples use:
10k entry LDIF file
23 attributes indexed
BDB 4.2.52
"database bdb" as the slapd.conf database
1) DB_CONFIG file with a 384MB cache, and normal slapadd options.
ldap-linux0:/db/DBs# time slapadd -l 10k.ldif
30.760u 1.800s 0:36.89 88.2% 0+0k 0+0io 13351pf+0w
2) DB_CONFIG file with a 384MB cache, and disabling logging via the BDB 4.2.52 flags.
ldap-linux0:/db/DBs# time slapadd -l 10k.ldif
26.790u 0.410s 0:27.35 99.4% 0+0k 0+0io 13318pf+0w
3) DB_CONFIG file with a 384MB cache and using the "-q" option to slapadd.
ldap-linux0:/db/DBs# time slapadd -q -l 10k.ldif
17.270u 0.450s 0:17.88 99.1% 0+0k 0+0io 13221pf+0w
4) no DB_CONFIG file and normal slapadd options. Note that this is Debian's current default method.
ldap-linux0:/db/DBs# time slapadd -l 10k.ldif
38.920u 26.830s 13:30.39 8.1% 0+0k 0+0io 732pf+0w
5) no DB_CONFIG file and using the "-q" option to slapadd.
ldap-linux0:/db/DBs# time slapadd -q -l 10k.ldif
25.470u 21.070s 0:50.10 92.8% 0+0k 0+0io 627pf+0w
--Quanah
--
Quanah Gibson-Mount
Principal Software Developer
ITSS/Shared Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html
Reply to: