Hi everyone, We’ve been stress‑testing an LMDB database by continually inserting and deleting records ranging from 4 KB to 5 MB. To track utilization, we rely on two independent metrics: Application index – we track the sum of the payload bytes of keys currently present. mdb_stat output – pages in use /overlay etc.... The two figures agree closely.
Despite this, we repeatedly hit MDB_MAP_FULL when both metrics say the map is only ≈ 50 % occupied (on both metrics). Our tentative conclusion is heavy page fragmentation: LMDB can’t find a sufficiently large contiguous run of free pages even though half of the map is nominally free. Questions - Is it normal to lose that much effective capacity with an insert/delete workload like ours? - How far can we realistically fill the map before hitting fragmentation limits? - Are there recommended ways to mitigate or “defragment”? Any advice would be greatly appreciated! Thanks! Hugues