Sophia: A modern embeddable key-value database – v1.2.2 released
sphia.org
sphia.org
> Tarantool combines the network programming power of Node.JS with data persitence capabilities of Redis.
Is that sarcasm? I can't tell.Tarantool uses an async evented IO model, but uses Lua coroutines and not Javascript. There are not callbacks, just 'yield points'.
Also, the primary data store backend is an in-memory database with optional 'snapshoting' to disk. An alternative backend uses sophia, so it's not 100% in memory.
Yes
whether or not it is a good fit for small CPUs and microcontrollers is another characteristic that I can't comment on.
Glanced at the code and the arch doc. Looks promising and shows careful crafting. Well done!
What's not to like...
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...
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.