-
Notifications
You must be signed in to change notification settings - Fork 177
ForestDB 1.0 Beta
We are pleased to announce ForestDB 1.0 Beta availability. The ForestDB project was launched a year ago as part of developing the new storage engine for Couchbase NoSQL database system.
ForestDB is a fast and space-efficient key-value storage engine that can be used as an embedded storage layer for applications running on high-end servers or mobile devices. Its main index structure is built from Hierarchical B+-Tree based Trie, called HB+-Trie, to address the main drawbacks of typical B+-Tree index structure that has been widely used in traditional database systems.
- Keys and values are treated as an arbitrary binary.
- Applications can supply a custom compare function to support a customized key order.
- A value can be retrieved by its sequence number or disk offset in addition to a key.
- Write-Ahead Logging (WAL) and its in-memory index are used to reduce the main index lookup / update overhead.
- Multi-Version Concurrency Control (MVCC) support and append-only storage model.
- Multiple snapshot instances can be created from a given ForestDB instance to provide different views of database.
- Rollback is supported to revert the database to a specific point.
- Ranged iteration by keys or sequence numbers is supported for a partial or full range lookup operation.
- Manual or auto compaction can be configured per ForestDB database file.
- Transactional support with read_committed or read_uncommitted isolation level.
- Configurable buffer cache that provides much better cache efficiency than the OS page cache.
For more details, please visit the ForestDB wiki page.
We have measured the ForestDB performance in various cases (e.g., initial load, read-heavy, write-heavy, mixed load, etc.) and compared them with LevelDB and RocksDB on server OS environments (Centos and Ubuntu). The performance results show that ForestDB outperforms both LevelDB and RocksDB in all the benchmark cases with less storage overhead.
In addition, we conducted the performance comparisons between Sqlite and ForestDB on a mobile device, and found that ForestDB shows much better (up to 8x) read / write performance than Sqlite.
Please visit our performance page for more details.
We have tested ForestDB on various server OS environments (Centos, Ubuntu, Mac OS x, Windows) and mobile OSs (iOS, Android).
ForestDB is the open source project under Apache 2.0 license. We always welcome any feedback and contributions from the community. The ForestDB source code is available in the [Github repository] (https://github.com/couchbaselabs/forestdb)