Vladimír Čunát wrote:
On 8/19/20 7:11 PM, Howard Chu wrote:
We have a process that needs to analyze the contents of a whole LMDB. So far the approach was to open a read-only transaction and use a cursor to iterate over the whole contents in order. This long transaction apparently causes other concurrent process(es) to get MDB_MAP_FULL from mdb_put() even though that LMDB has plenty free pages at that moment.
[...]
It's a documented feature.
I haven't seen that in docs http://www.lmdb.tech/doc/%C2%A0 (I even skimmed the "internals" section) Am I missing some part?
You definitely need to read more carefully. It's on the very first page of your link, under Caveats.
"Avoid long-lived transactions." ...