If LMDB is so fast why are people using boltdb, leveldb, rocksdb and all these other things that have exactly the same functionality but are slower?

Replies (8)

My impression is there are lots of tradeoffs between concurrency, read/write workloads, appends vs updates, compression, query complexity... LMDB is not known for fast writes, as I understand it.
In my rigorous test, rocksdb is 20x faster than lmdb when put, but 20x slower when get.
B+ tree vs. LSM tree, there are tradeoffs and advantages. I compared the two awhile ago. If I remember correctly, LevelDB (LSM tree) has faster write speeds for large databases. LMDB (B+ tree) is faster for reads most of the time. The write speed, I believe, will decrease the larger the database.
In my nuc11 linux, after initializing 5M data with 32 bytes key/val, single process, 100 data batch write, rcosksb 1M/s, lmdb 60K/s
Makes sense, but I get the impression that LMDB is still the faster on average, which would make it the best choice for 90% of the use cases where you need a basic key-value store.
โ†‘