On Sat, Jan 31, 2015 at 12:54 AM, Howard Chu <hyc(a)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.