Original author(s) | Howard Chu |
---|---|
Developer(s) | Symas |
Initial release | November 24, 2011 |
Stable release | 0.9.33
/ 21 March 2024 |
Repository | |
Written in | C |
Operating system | Unix, Linux, Windows, AIX, Sun Solaris, SCO Unix, macOS, iOS |
Size | 64 KB |
Type | Embedded database |
License | OpenLDAP Public License (permissive software license) |
Website | symas |
Lightning Memory-Mapped Database (LMDB) is an embedded transactional database in the form of a key-value store. LMDB is written in C with API bindings for several programming languages. LMDB stores arbitrary key/data pairs as byte arrays, has a range-based search capability, supports multiple data items for a single key and has a special mode for appending records (MDB_APPEND) without checking for consistency.[1] LMDB is not a relational database, it is strictly a key-value store like Berkeley DB and DBM.
LMDB may also be used concurrently in a multi-threaded or multi-processing environment, with read performance scaling linearly by design. LMDB databases may have only one writer at a time, however unlike many similar key-value databases, write transactions do not block readers, nor do readers block writers. LMDB is also unusual in that multiple applications on the same system may simultaneously open and use the same LMDB store, as a means to scale up performance. Also, LMDB does not require a transaction log (thereby increasing write performance by not needing to write data twice) because it maintains data integrity inherently by design.