MKLab-ITI / multimedia-indexing

A framework for large-scale feature extraction, indexing and retrieval.
Apache License 2.0
59 stars 19 forks source link

Berkeley DB is too slow compared to recent DB engines #2

Closed futurely closed 7 years ago

futurely commented 9 years ago

Symas's results showed that their LMDB is much faster than Berkeley DB, while InfluxDB proved that Facebook's RocksDB performed best overall.

Facebook RocksDB officially supports Java. https://github.com/facebook/rocksdb/tree/master/java https://github.com/facebook/rocksdb/wiki/RocksJava-Basics

<dependency>
    <groupId>org.rocksdb</groupId>
    <artifactId>rocksdbjni</artifactId>
    <version>3.9.1</version>
</dependency>

Benchmarking LevelDB vs. RocksDB vs. HyperLevelDB vs. LMDB Performance for InfluxDB

RocksDB Performance Benchmarks

image

Symas On-Disk Microbenchmark

Symas In-Memory Microbenchmark

image

image

image

hyc commented 7 years ago

The InfluxDB results for LMDB are invalid as they didn't use the API correctly. Their blog used to link to Disqus where a long discussion thread carried on this point, but for some reason the blog doesn't link to it any more. Full story here https://disqus.com/home/discussion/influxdb/benchmarking_leveldb_vs_rocksdb_vs_hyperleveldb_vs_lmdb_performance_for_influxdb/

Note that they never followed through on their promise to republish with updated results.

futurely commented 7 years ago

image

https://github.com/caffe2/caffe2/tree/master/caffe2/db

lfoutz commented 6 years ago

Any working links to the original Symas tests? The results for BDB look off, and I would like to know if they did not use the database correctly.

hyc commented 6 years ago

Apologies for the dead links. All of the benchmark reports are still linked from here https://symas.com/lmdb/technical/

All of the benchmark driver source code is available here https://github.com/hyc/leveldb/tree/benches/doc/bench

A newer rewrite of the benchmark driver is here https://github.com/LMDB/dbbench