CouchDB

jasonmcmunn's picture

Apache CouchDB, commonly referred to as CouchDB, is a free and open source document-oriented database written in the Erlang programming language. It is designed for local replication and to scale vertically along a wide range of devices.

Overview

CouchDB is most similar to other document stores like MongoDB and Lotus Notes. It is not a relational database management system. Instead of storing data in rows and columns, the database manages a collection of JSON documents. The documents in a collection need not share a schema, but retain query abilities via views. Views are defined with aggregate functions and filters are computed in parallel, much like MapReduce.

Views are generally stored in the database and their indexes updated continuously, although queries may introduce temporary views. CouchDB supports a view system using external socket servers and a JSON based protocol. As a consequence, view servers have been developed in a series of languages.

CouchDB exposes a RESTful HTTP API and a large number of pre-written clients are available. Additionally, a plugin architecture allows for using different computer languages as the view server such as JavaScript (default), PHP, Ruby, Python and Erlang. Support for other languages can be easily added.

CouchDB was accepted into Apache incubation in February 2008 and became a top level project in November 2008. Despite its low version number of 0.10, it is already in use in many software projects and web sites, including Ubuntu, where it is used to synchronize address and bookmark data.

(From http://en.wikipedia.org/wiki/CouchDB on January 09, 2010)