Skip to content

Comment on MDBM – High-speed databaseparent

Comments

If your databases are not more than a few tens of megs each, the same is true for 32-bit processors as well.

Why is that ? Shouldn't 32-bit processors give you enough space in the range of hundreds of MiB ?

Sure. But you only have 2-3GB of usable address space, and if your app has a lot of other variables to work with, there's not much space left over.

I should note that in LMDB 1.0 we'll have dynamic unmapping and remapping, to allow 32-bit machines to work with larger DBs. (There's still a significant performance cost for this. It's only being done to allow folks to use the same code on 32 and 64.)

Off-topic: will you have something like networked KV store aka redis. what do you think of Redis or Cassandra?

If you're interested in building a distributed DB on top of LMDB, I took care of part of the problem (replication/consistency) in my flotilla library at

https://github.com/jbooth/flotilla

Basically I'm just layering the raft consistency algorithm on top of LMDB. Both systems single-thread write transactions for consistency, so there's some mechanical sympathy. Doesn't mandate any specific data model or even a client-server network transport, it's basically a replicated embedded DB. Anyone could build replicated redis on top of it or a Cassandra clone if they want to get into managing shards/rings.

Sample app (still WIP) at https://github.com/jbooth/merchdb

For redis, there's already ardb, ledisdb, redis-NDS, and a few other redis clones that support LMDB. We also already have memcacheDB on LMDB, as well as HyperDex with LMDB.

I haven't looked closely at Cassandra since it's in java, and after I didn't find a simple backend plugin API I didn't look any further.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.