On Sat, Jan 31, 2015 at 12:54 AM, Howard Chu hyc@symas.com wrote:
My earlier assumption (before reading mdb_page_alloc) was that LMDB
would be aggressive about grabbing pages freed by transactions that are not actively being read. If we're relying on `last < oldest` to create a two page discrepancy, this means when we actually have readers on older transactions that we're being little more conservative than necessary.
More than necessary? I don't think so.
You'll conserve exactly one more transaction's free pages than necessary in the case where a reader-lock exists on any transaction older than the most recent snapshot.