Subject: [Bitcoin-development] Faster databases than LevelDB

From: Mike Hearn <[email-masked]>
Date: Tue, 17 Sep 2013 13:00:04 +0200

LevelDB is fast - very fast if you give it enough CPU time and disk seeks.
But it's not the last word in performance.

HyperLevelDB is a forked LevelDB with some changes, mostly, finer grained
locking and changes to how compaction works:

http://hyperdex.org/performance/leveldb/

However, it comes with a caveat - one of the changes they made is to take
away write throttling if compaction falls behind, the app itself is
expected to do that.

Sophia is a competitor to LevelDB. The website claims that in benchmarks it
completely smokes LevelDB. I have not explored how it does this or tried to
replicate their benchmarks myself:

http://sphia.org/index.html
http://sphia.org/benchmarks.html

It's written in C and BSD licensed.

As an example of the kind of speedup they claim to be capable of, they say
LevelDB could do 167,476 random reads per second on their SSD based
machine. Sophia could do 438,084 reads/sec. Random reads are of course the
most interesting for us because that's what UTXO lookups involve.

They also compare against HyperLevelDB, where the differences are much less
pronounced and actually HyperLevelDB appears to be able to do random writes
faster than Sophia.