Howard Chu writes: > Using variably positioned meta pages seems like something we would try to cut > down on seek overhead, but looking closer it doesn't appear that it can do > that.
Could some commits choose where the next commit's MDB_meta should go? Maybe peel a page off the freelist on behalf of the next commit. Then the current commit's MDB_meta includes a reference to that page and a check bit which is equal to some bit in the chosen page's MDB_meta. Instead of updating the file header, next commit toggles that bit in its own MDB_meta to show that it is in use. mdb_page_alloc() cannot reuse free pages younger than the current chain. mdb_env_pick_meta() must walk this chain of forward references, so such a chain should be short. -- Hallvard