A week ago, we have received official confirmation that our paper, ForestDB: A Fast Key-Value Storage System for Variable-Length String Keys, has been accepted for publication in IEEE Transactions on Computers – one of the top computer science journals.
This is great news for Jung-Sang Ahn, Chiyoung Seo and the rest of the team – they’ve invested more than two years of hard work on ForestDB. We’re integrating ForestDB into both Couchbase Server and Couchbase Mobile, and this is an important milestone. ForestDB will not only improve read and write performance, it will lay the foundation for new capabilities.
We’re committed to open source.
You can find the ForestDB on GitHub:
https://github.com/couchbase/forestdb
You can find a tool for benchmarking it on GitHub too:
https://github.com/couchbaselabs/ForestDB-Benchmark.
This blog is a step by step guide on how to install ForestDB and benchmark it on CentOS.
1. Verify Dependencies
You need g++ 4.7 or higher to build ForestDB. When I tried to build ForestDB on CentOS 6.5, I ran into this issue and I had to upgrade g++ to fix it. So, please make sure you have g++ 4.7 or higher by running g++ –version before attempting to build ForestDB.
2. Install ForestDB
You have to build ForestDB before you can benchmark it. You can find detailed instructions here. We recommended installing ForestDB under /usr/local. In addition, we recommend running make test to verify the installation was successful.
3. Benchmark ForestDB
Now comes the exciting part! You can find detailed instructions for building and running the benchmark here. As mentioned in the installation guide, if you install ForestDB in a custom directory, you’ll need to add it to the include path in the environment variables.
- Make sure your include path contains libforestdb.so and libsnappy.so.1
- Run the following command from the benchmark build directory: ./fdb_bench
- The benchmark is up and running!
A few caveats about the results. The results of performance benchmarks depend on the hardware they’re run on: the amount of memory, the number of processors, and disk I/O performance. So, your results may vary from mine. With the said, I’m happy to show you what the benchmark looks like when it’s up and running:
By the way, you can change the benchmark parameters in this file.