ForestDB is a fast key-value storage engine that is based on a Hierarchical B+-Tree based Trie, or HB+-Trie, which was originally presented at ACM SIGMOD 2011 Programming Contest. It was written in C++ and developed by Couchbase's Caching and Storage Team to provide a scalable and high performance storage layer for the Couchbase NoSQL database.
ForestDB can support efficient indexing and retrieval on a large number of variable-length keys, in terms of block device I/O operations. As discussed in the Performance section, it especially shows much better I/O performance on Solid-State Drives (SSDs). We have tested ForestDB in various server OS environments (Centos, Ubuntu, Mac OS X, Windows) and mobile OSs (iOS, Android).
This wiki provides a ForestDB overview, and describes the public APIs, implementation, integration into Couchbase Lite, performance results, and future work:
- ForestDB 1.0 Beta released (Oct, 2014)
- ForestDB 1.0 released (March, 2016)
- ForestDB 1.1 released (March, 2016)
- ForestDB 1.2 released (May, 2016)
ForestDB is currently released under the Apache 2.0 license.
We use the Gerrit code review system and Git for code review and repository management. If anyone wants to contribute the codes to the ForestDB project, please read the instructions in Couchbase Code Contribution Guideline
We use Jira to track issues in ForestDB. Please visit Couchbase Jira site to report any issues or bugs in ForestDB. When you create a Jira ticket, please select "Issues" -> "Create Issue" tab and then choose "Couchbase Server" as Project and "forestdb" as Component.