LMDB
LMDB is an embedded transactional key-value database that uses memory-mapped B+ trees, copy-on-write updates and multi-version concurrency control.
The original MDB design separates the application tree from a transaction-indexed free-page tree. [1] Our pinned C-API experiment kept eight 16 KiB values while varying reader lifetime; an active snapshot exhausted fixed 1 MiB and 2 MiB maps, whereas ended and reset-reader controls completed 256 overwrites. These are constructed observations, not a benchmark or failure-rate estimate. [4]
Relations
- related
- lmdb-reader-table, copy-on-write, snapshot-isolation
Limitations
- Map capacity, reusable pages and live payload bytes are different quantities; these test counts are not universal thresholds. [4]
Citations
- Howard Chu. MDB: A Memory-Mapped Database and Backend for OpenLDAP. LDAPCon 2011, sections 3.2 and 4.2.
- LMDB 0.9.33 API: transaction lifetime, reset/renew, map capacity and reader checks
- LMDB 0.9.33 implementation: mdb_find_oldest, mdb_page_alloc and mdb_reader_check0
- Hesela: controlled LMDB reader-lifetime experiment, complete results and limits
- LMDB readers: a stable snapshot can exhaust a fixed map