Apache CouchDB

Apache CouchDB
Original author(s)Damien Katz, Jan Lehnardt, Naomi Slater, Christopher Lenz, J. Chris Anderson, Paul Davis, Adam Kocoloski, Jason Davies, Benoît Chesneau, Filipe Manana, Robert Newson
Developer(s)Apache Software Foundation
Initial release2005; 19 years ago (2005)
Stable release
3.4.2[1] Edit this on Wikidata / 20 October 2024; 34 days ago (20 October 2024)
Repository
Written inErlang, JavaScript, C, C++
Operating systemCross-platform
TypeDocument-oriented database
LicenseApache License 2.0
Websitecouchdb.apache.org Edit this on Wikidata

Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang.

CouchDB uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.[2]

CouchDB was first released in 2005 and later became an Apache Software Foundation project in 2008.

Unlike a relational database, a CouchDB database does not store data and relationships in tables. Instead, each database is a collection of independent documents. Each document maintains its own data and self-contained schema. An application may access multiple databases, such as one stored on a user's mobile phone and another on a server. Document metadata contains revision information, making it possible to merge any differences that may have occurred while the databases were disconnected.

CouchDB implements a form of multiversion concurrency control (MVCC) so it does not lock the database file during writes. Conflicts are left to the application to resolve. Resolving a conflict generally involves first merging data into one of the documents, then deleting the stale one.[3]

Other features include document-level ACID semantics with eventual consistency, (incremental) MapReduce, and (incremental) replication. One of CouchDB's distinguishing features is multi-master replication, which allows it to scale across machines to build high-performance systems. A built-in Web application called Fauxton (formerly Futon) helps with administration.

  1. ^ "Release 3.4.2". 20 October 2024. Retrieved 21 October 2024.
  2. ^ Apache Software Foundation. "Apache CouchDB". Retrieved 15 April 2012.
  3. ^ Smith, Jason. "What is the CouchDB replication protocol? Is it like Git?". StackOverflow. Stack Exchange. Retrieved 14 April 2012.