Respostas:
Eu acho que existem algumas diferenças essenciais entre o CouchDB e o Couchbase Server que precisam ser destacadas.
Não vou escrever sobre as vantagens de alternar do CouchDB para o Couchbase Server porque elas são descritas em praticamente todos os lugares (consulte O futuro do CouchDB de Damien Katz ou Couchbase vs. Apache CouchDB do Couchbase). Em vez disso, tentarei enumerar os recursos do CouchDB que você não encontrará no servidor do Couchbase .
Todos os nomes relacionados ao CouchDB e ao Couchbase podem ser realmente confusos, por isso atualizei esta resposta para começar com uma breve explicação dos mais importantes.
Existem CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... todos diferentes e ainda relacionados de uma maneira que não é óbvia apenas pelos nomes.
Primeiro, havia o CouchDB, um banco de dados criado por Damien Katz, um ex-desenvolvedor da IBM. Seu nome oficial foi alterado para Apache CouchDB depois que se tornou um projeto Apache.
Uma empresa chamada CouchIO foi fundada para trabalhar no Apache CouchDB e posteriormente mudou seu nome para CouchOne (por "seu nome" quero dizer o nome da empresa - não o nome do banco de dados).
O CouchOne (anteriormente CouchIO) se fundiu com a Membase (anteriormente NorthScale) para formar uma nova empresa chamada Couchbase. Membase (a empresa) desenvolveu o Membase (um produto com o mesmo nome). O Membase foi criado por vários líderes do projeto Memcached e usou o protocolo Memcached. Após a fusão da CouchOne e da Membase, a Couchbase continuou o desenvolvimento do software Membase e posteriormente mudou seu nome para Couchbase Server.
Hoje, acho que a maioria das pessoas acredita que o Couchbase Server é uma nova versão do CouchDB, mas na verdade é uma nova versão do Membase. Ele ainda usa o protocolo Memcached e não a API RESTful do CouchDB. Enquanto isso, o CouchDB ainda é o CouchDB, mantido e aprimorado ativamente como um projeto Apache.
Agora, as diferenças relevantes:
O Couchbase Server não é um software totalmente de código aberto / gratuito . Existem duas versões: Community Edition (gratuita, mas sem correções de bugs mais recentes) e Enterprise Edition (existem restrições de uso, provisões de confidencialidade, auditorias da Couchbase Inc. que "serão realizadas durante o horário comercial nas instalações do Licenciado" e outros termos típicos software proprietário que muitas pessoas consideram inaceitável).
O CouchDB é um projeto de software livre / de código aberto (sem amarras) da Apache Software Foundation e é lançado sob a Licença Apache, versão 2.0 (compatível com DFSG, aprovada pela FSF, aprovada pela OSI, compatível com GPL, não copyleft , comercial-amigável).
Eu nunca vi isso apontado diretamente, mas essa pode ser realmente a diferença mais importante entre esses dois bancos de dados, porque é profundamente sobre a filosofia subjacente dos modelos de computação distribuída e não apenas sobre determinados recursos, APIs ou licenciamento. O CouchDB e o Couchbase Server diferem completamente em sua filosofia de criar sistemas e bancos de dados distribuídos.
De acordo com o teorema da PAC , é impossível que um banco de dados distribuído forneça simultaneamente consistência, disponibilidade e tolerância à partição.
O CouchDB é um sistema do tipo AP (fornece tolerância de disponibilidade e partição ).
O Couchbase Server é um sistema do tipo CP (de acordo com a Wikipedia ) OU um sistema do tipo CA (de acordo com a atualização técnica do Couchbase ) - QUE DESTES ESTÁ CORRETO? POR FAVOR COMENTE.
Isso é o que eu achei ser uma lista de recursos do CouchDB que não são suportados pelo servidor do Couchbase:
Esses recursos do CouchDB podem ou não ser importantes para você, portanto, se a falta deles é uma desvantagem ou não é estritamente subjetivo, mas acho que a decisão de mudar do CouchDB para o Couchbase Server ou não deve se basear nessas diferenças e sua dependência desses recursos em suas implantações atuais do CouchDB.
Por exemplo, se você se interessou pelo CouchDB depois de assistir ao feed de alterações do CouchDB pelo NodeCamp por Mikeal Rogers ou por um dos excelentes tutoriais do CouchApp por J. Chris Anderson, você deve perceber que, se quiser mudar para o Couchbase Server terá que esquecer praticamente tudo o que eles estavam falando.
Por isso, eu diria que o Couchbase Server parece uma evolução do Memcached e do Membase (não uma evolução do CouchDB) e, como tal, parece um ótimo produto se você estiver usando o Memchached ou o Membase. Se você estiver usando o CouchDB da maneira mais básica, considere usar o Couchbase Server para as mesmas coisas e ele pode ou não ter um desempenho melhor (se você não se importar com as restrições de licença). Mas se você estiver realmente usando algum dos recursos exclusivos do CouchDB (como o feed de alterações, CouchApps, arquitetura de duas camadas, replicação ponto a ponto etc.), poderá esquecer esses recursos ou permanecer no CouchDB. De qualquer forma, certifique-se de ler e entender o tutorial Migração para o Couchbase para usuários do CouchDB antes de pensar em mudar.
As pessoas costumam ter uma impressão errada (talvez depois de ler coisas como "Qual é o futuro do CouchDB? É o Couchbase." ) De que o CouchDB está de alguma forma obsoleto pelo Couchbase Server ou que é uma versão antiga e antiga do Couchbase. Enquanto o CouchDB é um projeto de código aberto mantido ativamente, o servidor do Couchbase é um projeto completamente separado (é um projeto mais novo, mas não é uma versão mais recente do CouchDB - eles nem são compatíveis) e uma vez que ainda são mantidas novas ferramentas para criar o CouchApps sendo desenvolvido (por exemplo, consulte o projeto Kanso ), o CouchDB não chegará a lugar algum em breve.
Espero que isso esclareça a confusão. Por favor, corrija-me se estiver errado em alguma coisa aqui.
Couchbase Server é realmente um novo nome para o Membase Server (o Membase Server foi renomeado para Couchbase Server em algum lugar da versão 1.8). Veja o Couchbase 2011 Year Review :
Infelizmente, confundimos muitos usuários em potencial. Além do Membase Server e de nossos novos produtos móveis, também oferecemos o Couchbase Single Server, que era uma "distribuição" empacotada do Apache CouchDB. Além disso, começamos a lançar as visualizações do desenvolvedor do Couchbase Server 2.0, que incorporavam a tecnologia CouchDB no Membase Server - mas este produto não era compatível com o Couchbase Single Server (ou CouchDB). O [...] Membase Server será renomeado para Couchbase Server 1.8 em seu próximo lançamento em janeiro - um pequeno passo que simplesmente alivia a confusão de "nome". Como foi planejado desde o início, a versão do Couchbase Server 2.0 (atualmente na Developer Preview 3) adicionará funcionalidade de índice e consulta. Embora o Couchbase Server 2.0 incorpore uma tecnologia substancial do projeto CouchDB,não será compatível com o CouchDB e não deve ser visto como uma "versão do CouchDB". [enfase adicionada]
Eles são diferentes, mas similares, softwares. Remixei o conteúdo da resposta superior em uma imagem que possa ajudar a esclarecer a "diferença" e as coisas comuns:
Um comentário de Matt Ingenthron acrescenta a isso:
Para adicionar alguns contextos / correções: Os fundadores da NorthScale são Steve Yen e Dustin Sallings. Eu me juntei a eles logo após a fundação. Além disso, Damien não se juntou mais tarde à Couchbase, ele fazia parte do CouchIO / Couch One antes da fusão. Citando uma fonte histórica divertida: https://youtube.com/watch?v=aZ_JOnU8tkI
Eu acho que o CouchBase parece ser percebido como a alternativa 'corporativa' do CouchDB. Que de certa forma parece ser verdade. Além da falta de capacidade de anexar arquivos aos registros (documentos) e aos pontos de extremidade REST 'prontos para o uso' em comparação com o CouchDB, o CouchBase possui uma linguagem semelhante a sql, ou seja, N1QL (às vezes pronunciado como níquel). Essa é uma das razões pelas quais eu realmente não gosto / recomendo usar o termo 'NoSQL'. Pessoalmente, gosto do termo "Não relacional".