Hacker News new | past | comments | ask | show | jobs | submit login

Why BerkleyDB?

BerkleyDB is now AGPL3[0], which some projects have a problem with. (Of course, you can buy a commercial license. Some projects have a problem with that too).

But the main reason, almost regardless of context, as to "why not BerkleyDB" is LMDB[1]. It works way better than everything else, in just about every practical use that has more reads than writes.

The only downside as far as I can tell, is that right now it relies on memory mapping the entire database, so you're limited to ~1GB overall database size on 32 bit systems. There is no practical limit on 64 bit systems. Also, I recall Howard Chu (main LMDB developer) mentioned that in the near future LMDB will gain the ability to manage memory manually - thus removing this restriction as well (for a performance price if used this way).

[0] http://www.oracle.com/technetwork/database/database-technolo...

[1] http://symas.com/mdb/




The feature for re-mapping on 32bit systems is available here https://gitorious.org/mdb/mdb/source/69d7cb8d44e04f02d8d0c92...:


When will it be merged to the mainline? (or is it already there?) Will it eventually be a run-time option, or always a compile time option?

The latest reference I can find is http://www.openldap.org/lists/openldap-devel/201410/msg00001... - were the problems solved?

Thanks for LMDB. It is awesome.


It still needs heavier testing before going to mainline. I expect it will only ever be a compile-time option. On 64bit it's pointless, and 32bit is going the way of the dodo.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: