*** Welcome to piglix ***

Lightning Memory-Mapped Database

OpenLDAP Lightning Memory-Mapped Database
Original author(s) Howard Chu
Developer(s) Symas
Initial release 2011-11-24
Stable release
0.9.19 / 2016-12-28
Preview release
0.9.20 / 2017-01-11
Development status production
Written in C
Operating system Unix, Linux, Windows, AIX, Sun Solaris, SCO Unix, macOS, iOS
Size 64KB (binary), 7KLOC (source)
Type Embedded database
License OpenLDAP Public License
Website symas.com/mdb

Lightning Memory-Mapped Database (LMDB) is a software library that provides a high-performance 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 at the end of the database (MDB_APPEND) which gives a dramatic write performance increase over other similar stores. 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.

LMDB's design was first discussed in a 2009 post to the OpenLDAP developer mailing list, in the context of exploring solutions to the cache management difficulty caused by the project's dependence on Berkeley DB. A specific goal was to replace the multiple layers of configuration and caching inherent to Berkeley DB's design with a single, automatically managed cache under the control of the host operating system.

Development subsequently began, initially as a fork of a similar implementation from the OpenBSD ldapd project. The first publicly available version appeared in the OpenLDAP source repository in June 2011.

The project was known as MDB until November 2012, after which it was renamed in order to avoid conflicts with existing software.


...
Wikipedia

...