ForestDB project is an open source embeded key/value storage engine with great performance and space efficiency. The project started implementation a year ago. The main objective was to address the main drawbacks of typical B+-Tree index structure and push disk IO performance to the next level.
The initial presentation of the new HB+-Trie structure, which is the underlying structure for ForestDB, was originally presented at ACM SIGMOD 2011 by Jung-Sang Ahn. Chiyoung Seo is leading the team implementing ForestDB with Sundar Sridharan at Couchbase. Through the implementation, we have seen a great deal of improvement on SSD (Solid State Drive) performance.
Under the hood, ForestDB is an MVCC (multi-version concurrency control) append only storage engine. ForestDB provides snapshotting capabilities to create multiple views of the database and ForestDB supports rollbacks to the snapshots. If you like to learn more, check our our repo.
Our goal initially was to shatter key/value storage performance numbers with ForestDB so I’ll give a quick glimpse into that before I close. We have compared ForestDB with LevelDB, RocksDB and for mobile deployments to SQLite. I am happy to report we outperform both in mutiple dimensions. I’ll highlight the write performance compared with LevelDB and Rocks DB here given that usually is the most challenging one to scale – you can see over 2x better throughput with the batch of document count below.
Benchmarking is always a complex matter so I encourage everyone to explore the full details. Please refer to the performance results page we have published for full details.
We are very excited to put ForestDB out in beta before it shows up in Couchbase Server and Couchbase Lite. We welcome contributions and feedback. Please reach out to us thorough the repo. lets continue to innovate in the storage engine tier together.
Cihan Biyikoglu – Director of Product Management @ Couchbase