CouchDB

From Wikipedia, the free encyclopedia

Apache CouchDB
logo
Developed by Apache Software Foundation
Initial release 2005
Written in Erlang
OS Cross-platform
Available in English
Genre Document-oriented database
License Apache Licence
Website CouchDB

Apache CouchDB, commonly referred to as CouchDB, is a free software document-oriented database written in the Erlang programming language. It is designed for extreme scalability and is easily deployed to multi-core or multi-server clusters.[citation needed]

Like other document-oriented database systems, such as Lotus Notes, CouchDB is not a Relational Database Management System. Instead of storing data in rows and columns, the database manages a collection of JSON documents (early versions of CouchDB used XML). As a result, it is often compared with column-oriented datastores like Google's BigTable; however, CouchDB is not a column-oriented store, since the documents in a collection need not share a schema. Aggregate functions and filters are computed in parallel as in MapReduce, rather than at query time (although queries may introduce new aggregate functions, which execute on the existing documents in parallel).

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

CouchDB was accepted into Apache incubation in February 2008[3].


For more information, see Document-oriented databases.


[edit] External links

[edit] Notes

  1. ^ CouchDB Documentation Wiki:HTTP REST API http://www.couchdbwiki.com/index.php?title=HTTP_REST_API
  2. ^ CouchDB Documentation Wiki:View Server Protocol: Implementations http://www.couchdbwiki.com/index.php?title=View_Server_Protocol#Implementations
  3. ^ Apache mailing list announcement http://mail-archives.apache.org/mod_mbox/incubator-general/200802.mbox/%3c3d4032300802121136p361b52ceyfc0f3b0ad81a1793@mail.gmail.com%3e
Languages