CouchDB

CouchDB ("cluster of unreliable commodity hardware") is a document-oriented NoSQL DBMS.

History

Couch is an acronym for cluster of unreliable commodity hardware. The CouchDB project was created in April 2005 by Damien Katz, former Lotus Notes developer at IBM. He self-funded the project for almost two years and released it as an open source project under the GNU General Public License.

In February 2008, it became an Apache Incubator project and was offered under the Apache License instead.[4] A few months after, it graduated to a top-level project. This led to the first stable version being released in July 2010.

In early 2012, Katz left the project to focus on Couchbase Server.

Since Katz's departure, the Apache CouchDB project has continued, releasing 1.2 in April 2012 and 1.3 in April 2013. In July 2013, the CouchDB community merged the codebase for BigCouch, Cloudant's clustered version of CouchDB, into the Apache project. The BigCouch clustering framework is included in the current release of Apache CouchDB.

Native clustering is supported at version 2.0.0. And the new Mango Query Server provides a simple JSON-based way to perform CouchDB queries without JavaScript or MapReduce.

Concurrency Control

Multi-version Concurrency Control (MVCC)

The CouchDB uses MVCC as the concurrency control policy for read operations, each clients sees a consistent snapshot during the read operation.

Query Interface

HTTP / REST

CouchDB provide RESTful HTTP API for reading and updating database documents.

System Architecture

Shared-Nothing

CouchDB is a peer-based distributed database system, each peer can provide same data for user to access. They do not share anything.

Indexes

B+Tree

The documents in CouchDB are indexed by their name and sequence id, these index are organized by B-trees.

Storage Architecture

Disk-oriented

CouchDB will store data on disk and all update are synchronously flushed to disk.

CouchDB Logo
Website

http://couchdb.apache.org/

Source Code

https://github.com/apache/couchdb

Tech Docs

http://docs.couchdb.org/en/stable/index.html

Developer

Damien Katz

Country of Origin

US

Start Year

2005

Acquired By

Apache Software Foundation

Project Type

Open Source

Written in

Erlang

Supported languages

C, C#, Erlang, Haskell, Java, JavaScript, Lisp, Lua, Objective-C, Ocaml, Perl, PHP, PL/SQL, Python, Ruby, Smalltalk

Operating Systems

Android, BSD, iOS, Linux, OS X, Solaris, Windows

Licenses

Apache v2

Wikipedia

https://en.wikipedia.org/wiki/Apache_CouchDB