The next-generation ForestDB storage engine that I've mentioned here a few times is now available in beta form, as
announced today on Couchbase's blog. Its
Github repository has the source code and some documentation including a good
overview.
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, or HB+-Trie, to address the main drawbacks of typical B+-Tree index structure that has been widely used in traditional database systems. … From our benchmark results, we observed that ForestDB especially shows much better I/O performance on Solid-State Drives (SSDs) and flash memory.
I've been working with ForestDB since March, integrating it into Couchbase Lite to replace SQLite.
This wiki page describes the project at a high level. It's still a work in progress (as is ForestDB itself), but I've seen speedups from 2x to 5x in common tasks (measured on an iPhone 5) — see the chart below.
You can try it out for yourself, if you like. The
instructions are here. At a high level, you just need to check out the "forestdb" branch of couchbxse-lite-ios and build it. Everything should work the same, just faster, with a
few exceptions.
(By the way, if you're interested in using ForestDB directly you might be interested in the
C++ wrapper library I wrote around it. It adds an OO API, indexes, and structured keys. It's theoretically cross-platform, though at the moment I think it still has a few minor Mac/iOS-specific bits.)
I'm really excited that ForestDB is finally public. I've been enjoying using it and it's great to finally be able to share the project with you. We don't yet have a firm release date for Couchbase Lite-with-ForestDB, but we're planning to release it at the same time that ForestDB itself goes 1.0.
—Jens