CouchDB ("cluster of unreliable commodity hardware") is a document-oriented NoSQL DBMS.
CouchDB was created by Damien Katz in April 2005, it was initially written in C++ and used the GNU General Public License.
CouchDB then discarded C++ and moved to Erlang for development in February 2006.
CouchDB became an Apache Incubator project and converted its license to Apache License in February 2008.
The beta version 0.10.0 of CouchDB published in October 2009.
The CouchDB published 1.2.0 in April 2012, 1.3.0 in April 2013, 1.4.0 in August 2013, 1.5.0 in November 2013, 1.6.0 in June 2014.
In September 2016, CouchDB published 2.0.0, the prime feature of this version is that it support for clustering, this work is originally done in the BigCouch project, and it was merged into the 2.0.0 version of CouchDB.
The latest version of CouchDB is 2.3.0 in December 2018.
Multi-version Concurrency Control (MVCC)
The CouchDB uses Multi-version Concurrency Control (MVCC) as the concurrency control policy for read operations, each clients sees a consistent snapshot during the read operation.
The storage model of CouchDB is simply a large file, this database file contains variable-length data chunks, and a custom file critical header.
As the CouchDB is append-only, the header of the database file is in the tail of the file to be access or re-append by each append operation.
https://github.com/apache/couchdb
http://docs.couchdb.org/en/stable/index.html
Damien Katz
2005
C, C#, Erlang, Haskell, Java, JavaScript, Lisp, Lua, Objective-C, Ocaml, Perl, PHP, PL/SQL, Python, Ruby, Smalltalk
Android, BSD, iOS, Linux, OS X, Solaris, Windows