> On Apr 3, 2016, at 8:35 PM, Howard Chu <[email protected]> wrote:
> 
> Argyrios Kyrtzidis wrote:
>> Hi,
>> 
>> Thank you for making LMDB available.
>> 
>> I’m using LMDB on OSX (without MDB_WRITEMAP, so the database file size is 
>> relative to the stored data, not the max mapsize).
>> I’ve noticed that write transactions that have a large number of ‘attempted’ 
>> updates, but that do not actually make any updates due to MDB_NOOVERWRITE / 
>> MDB_NODUPDATA, cause an increase in the database file size, which mdb_stat 
>> attributes to an increased number of free pages.
>> This is with latest master of the github mirror.
>> 
>> I’m wondering if you have any hints on what I may be doing wrong ? I’d like 
>> if possible to avoid the database size increasing if the write pass did not 
>> make any updates.
> 
> Call mdb_txn_abort() instead of mdb_txn_commit() when you encounter KEYEXIST 
> errors.

Thanks for the tip! I’d need to keep track of more information across the 
various database updates but it is doable.

Do you think there is a missed opportunity for reusing existing free pages ? 
I’d expect that it would not consistently increase the number of free pages, if 
there are free pages available.

> 
> -- 
>  -- Howard Chu
>  CTO, Symas Corp.           http://www.symas.com
>  Director, Highland Sun     http://highlandsun.com/hyc/
>  Chief Architect, OpenLDAP  http://www.openldap.org/project/


Reply via email to