--On Tuesday, March 20, 2012 2:16 PM +0000 hyc(a)symas.com wrote:
hyc(a)symas.com wrote:
> quanah(a)OpenLDAP.org wrote:
>> Full_Name: Quanah Gibson-Mount
>> Version: 2.4.30
>> OS: Linux 2.6
>> URL:
ftp://ftp.openldap.org/incoming/
>> Submission from: (NULL) (75.108.184.39)
>>
>>
>> If you create a script to add& delete the same 50,000 users, and then
>> re-run that script multiple times, the MDB database on disk continues
>> to grow, despite the fact that we are only adding and deleting the same
>> data repeatedly. There should be zero growth to the database.
>>
>> Instead, the data.mdb file went from 108MB in size to over 1.2GB after
>> 5-6 runs. Time to add/delete all the users went from 3 minutes 32
>> seconds on the first run to over 90 minutes on the final run (5th or
>> 6th, I lost count).
>
> At present, MDB is working as intended. In your test a number of overflow
> pages are being used. Currently libmdb always allocates overflow pages
> from new space, because it's not smart enough to search the free list for
> contiguous pages. Can treat this ITS as an enhancement request for that
> purpose, but this is not a new issue nor is it unexpected in the current
> version of MDB.
>
Hm, I take this back. The overflow pages are not enough to account for
the difference. Still looking.
If this were truly the expected behavior, it would make using back-mdb with
delta-syncrepl useless, as the accesslog would simply grow without bound.
;) Even back-bdb/hdb don't do that. While the DB will never be smaller
than the maximum size ever reached without reloading, it won't
unnecessarily grow past that either. :P
--Quanah
--
Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra :: the leader in open source messaging and collaboration