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

Re: LMDB: file size increase (due to new free pages) even though write transaction does not add/update items



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.

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