OpenLDAP’s new memory-mapped backend, mdb, is ready for production. It was first introducted over a year ago, and since then, the OpenLDAP developers (Howard Chu in particular) have put quite a bit of work into getting all of the bugs worked out.
The OpenLDAP mailing lists report that several companies are deploying it in production:
The latest version of email/collaboration software Zimbra uses the mdb backend as well:
All of this leads me to believe it’s production-ready. I’ve been running it myself at my own job for a couple weeks now, and it’s actually lived up to the hype. It really is faster, uses less memory, and is way easier to configure. You can read more about the advantages of mdb here: coming soon: memory-mapped db for OpenLDAP
Here’s a short list of what I would consider the caveats:
- Since it’s new technology, I highly recommend compiling the latest version of OpenLDAP (as of this posting 2.4.33) to get the latest bug fixes and performance improvements. I have a page of useful tips for compiling OpenLDAP to get the most out of it here: compiling OpenLDAP.
- Write performance is still being optimized. My personal recommendation would be to continue to use hdb on the master server (properly optimized), and mdb on the replica servers.
I’m guessing because of the previous point, it can take quite a bit longer to do the initial database load. Using hdb it took a few hours to slapadd our database, but it’s taking around 12 hours to slapadd it using mdb. It’s worth the wait, though.
I’ve updated my wiki on optimizing OpenLDAP with instructions for mdb. Instead of worrying about locks and three different levels of caches, there’s just one important option which is trivial to configure:
More information about mdb is available here:
Now, if Symas would only post some updated benchmarks, I could point to just how much faster OpenLDAP is than the competition…