cloudant/couch_ngen

Name: couch_ngen

Owner: Cloudant

Description: Storage engine based on nifile

Created: 2015-10-14 18:33:53.0

Updated: 2017-02-22 18:44:56.0

Pushed: 2018-05-17 16:59:30.0

Homepage: null

Size: 82

Language: Erlang

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

couch_ngen

This is an alternative storage engine implementation for CouchDB. It relies on all of the 45918-pluggable-storage-engine branches to function correctly.

This storage engine has three major changes from the legacy engine. First, it uses nifile for performing all IO (rather than the builtin Erlang file module). Secondly, it uses a system of three files (one for data, one for the three btree indexes, and one for commit data). This is to avoid requiring the make_blocks and related functions in couch_file. Thirdly it stores the same pointer to #full_doc_info{} records in both the id_tree and seq_tree to avoid duplicating data on disk.

Some initial micro benchmarks at the storage engine API layer suggest this is a faster implementation than the legacy engine.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.