An ultra-fast, ultra-compact, crash-proof key-value embedded data store.
Symas LMDB is an extraordinarily fast, memory-efficient database we developed for the OpenLDAP Project. With memory-mapped files, it has the read performance of a pure in-memory database while retaining the persistence of standard disk-based databases.
Bottom line, with only 32KB of object code, LMDB may seem tiny. But it’s the right 32KB. Compact and efficient are two sides of a coin; that’s part of what makes LMDB so powerful.
Explore Capabilities
- Ordered-map interface
- keys are always sorted; range lookups are supported
- Fully-transactional
- full ACID semantics with MVCC
- Reader/writer transactions
- readers don’t block writers; writers don’t block readers
- Fully serialized writers
- writes are always deadlock-free
- Extremely cheap read transactions
- can be performed using no mallocs or any other blocking calls
- Multi-thread and multi-process concurrency supported
- Environments may be opened by multiple processes on the same host
- Multiple sub-databases may be created
- transactions cover all sub-databases
- Memory-mapped
- allows for zero-copy lookup and iteration
- Maintenance-free
- no external process or background cleanup or compaction required
- Crash-proof
- no logs or crash recovery procedures required
- No application-level caching
- LMDB fully exploits the operating system’s buffer cache
- 32KB of object code and 6KLOC of C
- fits in CPU L1 cache for maximum performance
Ask A Question
Ready to learn more about Symas LMDB?
Give us a call at +1 650.963.7601.
Support Options
Commercial Support
Symas offers fixed-price commercial support to those using LMDB in your applications. Please contact us (Via Ask A Question above) for additional information.
Porting and Professional Services
Thinking about switching your application to LMDB? Call us. We will be happy to provide developer support or porting services to help you transition your application to LMDB.
Community
Search the discussions on the OpenLDAP mailing lists.
Source Information
Development occurs in the OpenLDAP Project‘s git repo in the mdb.master branch. A clone of just the LMDB code is also available on Github.
Technical Information
Symas LMDB has been written about, talked about, and utilized in a variety of impressive products and publications.
We invite you to learn more on this specific “Technical Information” page.
Download LMDB
How It Compares
Click to see a quick comparison of other embedded key value stores.
Comparison Grid
LMDB | BDB | LevelDB | Kyoto TreeDB | |
ACID compliant | ✔ | ✔ | ||
Nested transactions | ✔ | ✔ | ||
Multiple namespaces | ✔ | ✔ | ||
Sorted keys | ✔ | ✔ | ✔ | ✔ |
Sorted duplicate keys | ✔ | ✔ | ||
Multi-thread concurrency | ✔ | ✔ | ✔ | ✔ |
Multi-process concurrency | ✔ | ✔ | ||
No cache tuning: zero-config | ✔ | |||
Instantaneous crash recovery | ✔ | |||
Zero-copy reads | ✔ | |||
Zero-copy writes | ✔ | |||
Atomic hot backup | ✔ |
Download Software
Download an ultra-fast, ultra-compact, crash-proof key-value embedded data store.