Ehsan Ghanbari

Experience, DotNet, Solutions

A quick look at LMDB situation in NoSQL world

A comparison in http://symas.com/mdb/  encouraged me to write about LMDB situation within NoSQL databases. LMDB is a key/value NoSQL database and this is A comparison of popular NoSQL databases.

 

LMDB

 

There is another comparison in here if you are interested in to read more. One of the great features of LMDB is that it's a memory-mapped file like LevelDB (I think so!) and it makes the reading performance more and more. If you refer the above link I mentioned, you can see the complete list of LMDB Capabilities:

  1. Ordered-map interface (keys are always sorted, supports range lookups)
  2. Fully transactional, full ACID semantics with MVCC.
  3. Reader/writer transactions: readers don't block writers and writers don't block readers. Writers are fully serialized, so writes are always deadlock-free.
  4. Read transactions are extremely cheap and can be performed using no mallocs or any other blocking calls.
  5. Supports multi-thread and multi-process concurrency, environments may be opened by multiple processes on the same host.
  6. Multiple sub-databases may be created with transactions covering all sub-databases.
  7. Memory-mapped, allowing for zero-copy lookup and iteration.
  8. Maintenance-free, no external processor background cleanup/compaction required.
  9. No application-level caching. LMDB fully exploits the operating system's buffer cache.
  10. 32KB of object code and 6KLOC of C.
  11. Licensed under the OpenLDAP Public License

 
LMDB also supports multiple platforms and OS such as Linux, Mac OS, and windows (I've just heard about this one and haven't tested yet). LMDB is one of the fastest databases because it is in-process and runs just like other apps in the memory. I've not enough experience about working with key/value NoSQL databases but it seems that all of the above claims are true!

About Me

Ehsan Ghanbari

Hi! my name is Ehsan. I'm a developer, passionate technologist, and fan of clean code. I'm interested in enterprise and large-scale applications architecture and design patterns. I spend a lot of time on software architecture. Since 2008, I've been as a developer for different companies and organizations and I've been focusing on Microsoft ecosystem all the time. During the past years, Read More

Post Tags
Pending Blog Posts
using Elmah in asp.net MVC4
Using FluentSecurity in MVC
Strategic design
Factory Pattern
time out pattern in ajax
Redis as a cache server
How to use PagedList In asp.net MVC
Multiple submit buttons in asp.net MVC
Domain driven design VS model driven architecture
What's the DDD-lite?
comments powered by Disqus