O termo "Couch" é um acrônimo para Cluster of Unreliable Commodity Hardware (Conjunto de Hardware Commodity Não-Confiáveis), refletindo o objetivo do banco de dados ser extremamente escalável, oferecendo alta disponibilidade e confiabilidade, mesmo quando executando em um hardware que é tipicamente suscetível a falhas.
CouchDB
Em suma,
CouchDB é um banco de dados orientado a documentos, feito com
Erlang em conta de sua lendária programação multitarefa e desempenho, diferente de bancos relacionais que estamos acostumados ver como
MySQL,
SQLite e
PostgreSQL.
Da mesma forma que os
SGBDRs oferecem o
SQL como interface de consulta, o CouchDB oferece uma interface de consultas adaptada aos seus princípios arquiteturais baseados na Web, através do
Representational State Transfer (
REST), que é utilizado como forma de inserir, atualizar, extrair e remover dados do CouchDB.
Popularmente o público rotula-o como
NoSQL, esse tipo de banco de dados, assim como "MongoDB". Muitos dizem que é errado, pois usa SQL, mas este rótulo acabou colando.
Quanto ao termo
ACID no CouchDB, todo o layout de arquivos e sistema de commit está baseado nestes princípios, o que resulta na garantia de um estado sempre consistente do arquivo de banco de dados. A atualização de documentos são serializadas e os leitores de banco nunca são bloqueados ou nunca têm de esperar por escritores ou outros leitores.
A leitura de documentos pode ser realizada por diversos clientes sem ser bloqueada ou interrompida por atualizações concorrentes. Esta característica se deve pela utilização de um modelo baseado no algoritmo
MVCC, onde cada cliente vê um retrato consistente do banco de dados do começo até o final da operação de leitura. (Apache CouchDB, Technical Overview, 2008)