Risposte:
Penso che ci siano alcune differenze essenziali tra CouchDB e Couchbase Server che devono essere evidenziate.
Non scriverò sui vantaggi del passaggio da CouchDB a Couchbase Server perché sono descritti praticamente ovunque (vedi The Future of CouchDB di Damien Katz o Couchbase vs. Apache CouchDB di Couchbase). Cercherò invece di enumerare le funzionalità di CouchDB che non troverai nel server Couchbase .
Tutti i nomi relativi a CouchDB e Couchbase possono essere davvero confusi, quindi ho aggiornato questa risposta, per iniziare con una breve spiegazione di quelli più importanti.
Esistono CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... tutti diversi e tuttavia correlati in un modo per nulla evidente dai soli nomi.
Innanzitutto, c'era CouchDB, un database creato da Damien Katz, un ex sviluppatore IBM. Il suo nome ufficiale è stato cambiato in Apache CouchDB dopo essere diventato un progetto Apache.
Una società di nome CouchIO è stata fondata per lavorare su Apache CouchDB e in seguito ha cambiato il suo nome in CouchOne (per "nome" intendo il nome della società, non il nome del database).
CouchOne (precedentemente CouchIO) si fuse con Membase (precedentemente NorthScale) per formare una nuova società chiamata Couchbase. Membase (la società) ha sviluppato Membase (un prodotto con lo stesso nome). L'appartenenza è stata creata da diversi leader del progetto Memcached e ha utilizzato il protocollo Memcached. Dopo la fusione di CouchOne e Membase, Couchbase ha continuato lo sviluppo del software Membase e in seguito ha cambiato il suo nome in Couchbase Server.
Oggi penso che molte persone credano che Couchbase Server sia una nuova versione di CouchDB, ma in realtà è una nuova versione di Membase. Utilizza ancora il protocollo Memcached e non l'API RESTful di CouchDB. Nel frattempo, CouchDB è ancora CouchDB, mantenuto attivamente e migliorato come progetto Apache.
Ora alle differenze rilevanti:
Couchbase Server non è interamente software open source / gratuito . Esistono due versioni: Community Edition (gratuita ma nessuna ultima correzione di bug) ed Enterprise Edition (ci sono restrizioni sull'uso, disposizioni sulla riservatezza, audit di Couchbase Inc. che "saranno condotti durante il normale orario di lavoro presso le strutture del Licenziatario" e altri termini tipici al software proprietario che molte persone potrebbero ritenere inaccettabile).
CouchDB è un progetto software open source / gratuito (senza stringhe allegate) di The Apache Software Foundation ed è rilasciato sotto licenza Apache, versione 2.0 (compatibile DFSG, approvato FSF, approvato OSI, compatibile GPL, non copyleft , commerciale).
Non l'ho mai visto sottolineato direttamente, ma questa potrebbe essere in realtà la differenza più importante tra quei due database perché si basa profondamente sulla filosofia di base dei modelli di calcolo distribuito e non solo su determinate funzionalità, API o licenze. CouchDB e Couchbase Server differiscono completamente nella loro filosofia di costruzione di sistemi e database distribuiti.
Secondo il teorema CAP è impossibile per un database distribuito fornire simultaneamente coerenza, disponibilità e tolleranza della partizione.
CouchDB è un sistema di tipo AP (fornisce tolleranza di disponibilità e partizione ).
Couchbase Server È QUALSIASI un sistema di tipo CP (secondo Wikipedia ) O un sistema di tipo CA (secondo l'aggiornamento tecnico Couchbase ) - QUALE DI QUESTI È CORRETTO? PER FAVORE, COMMENTA.
Questo è quello che ho trovato essere un elenco di funzionalità di CouchDB che non sono supportate dal server Couchbase:
Queste funzionalità di CouchDB possono essere o meno importanti per te, quindi se la loro mancanza è uno svantaggio o meno è strettamente soggettiva, ma penso che la decisione di passare da CouchDB a Couchbase Server o meno debba essere basata su tali differenze e la tua dipendenza da quelle funzionalità nelle tue attuali distribuzioni CouchDB.
Ad esempio, se ti sei interessato a CouchDB dopo aver visto le modifiche di CouchDB al feed NodeCamp di Mikeal Rogers o uno dei fantastici tutorial di CouchApp di J. Chris Anderson, devi capire che se vuoi passare al Couchbase Server allora dovrà dimenticare praticamente tutto ciò di cui stavano parlando.
Per questo motivo, direi che Couchbase Server sembra un'evoluzione di Memcached e Membase (non un'evoluzione di CouchDB) e come tale sembra un ottimo prodotto se stai attualmente utilizzando Memchached o Membase. Se si utilizza CouchDB nel modo più semplice, è possibile prendere in considerazione l'utilizzo del server Couchbase per le stesse cose e potrebbe funzionare o meno (se non si considerano le restrizioni della licenza). Ma se stai effettivamente utilizzando una delle funzionalità uniche di CouchDB (come feed delle modifiche, CouchApps, architettura a due livelli, replica peer-to-peer ecc.), Puoi dimenticare quelle funzionalità o rimanere con CouchDB. In ogni caso, assicurati di leggere e comprendere l' esercitazione Migrazione a Couchbase per utenti di CouchDB prima di pensare al passaggio.
Le persone spesso hanno l'impressione sbagliata (forse dopo aver letto cose come "Qual è il futuro di CouchDB? È Couchbase" ) che CouchDB è in qualche modo obsoleto dal server Couchbase o che è una vecchia versione legacy di Couchbase. Nel frattempo CouchDB è un progetto open source attivamente gestito, il server Couchbase è un progetto completamente separato (è un progetto più recente ma non è una versione più recente di CouchDB - non sono nemmeno compatibili) e poiché anche i nuovi strumenti per la creazione di CouchApp continuano a in fase di sviluppo (es. vedere il progetto Kanso ), CouchDB non andrà presto da nessuna parte.
Spero che chiarisca la confusione. Per favore, correggimi se sbaglio su qualcosa qui.
Couchbase Server è in realtà un nuovo nome per il server di appartenenza (il server di appartenenza è stato rinominato in Couchbase Server da qualche parte intorno alla versione 1.8). Vedi Couchbase 2011 anno in rassegna :
Sfortunatamente, abbiamo confuso il controllo di molti dei nostri potenziali utenti. Oltre a Membase Server e ai nostri nuovi prodotti mobili, abbiamo anche offerto Couchbase Single Server che era una "distribuzione" in pacchetto di Apache CouchDB. Inoltre, abbiamo iniziato a pubblicare le anteprime degli sviluppatori di Couchbase Server 2.0, che incorporava la tecnologia CouchDB in Membase Server, ma questo prodotto non era compatibile con Couchbase Single Server (o CouchDB). [...] Membase Server verrà rinominato Couchbase Server 1.8 alla sua prossima versione a gennaio, un piccolo passo che allevia semplicemente la confusione del "nome". Come previsto dall'inizio, la versione 2.0 di Couchbase Server (attualmente in Developer Preview 3) aggiungerà funzionalità di indice e query. Mentre Couchbase Server 2.0 incorporerà una sostanziale tecnologia del progetto CouchDB,non sarà compatibile verso l'alto con CouchDB e non dovrebbe essere visto come una "versione di CouchDB". [enfasi aggiunta]
Sono software diversi ma simili. Ho remixato il contenuto della risposta principale in un'immagine che potrebbe aiutare a chiarire la "differenza" e le cose comuni:
Un commento di Matt Ingenthron aggiunge a questo:
Per aggiungere alcuni contesti / correzioni: i fondatori di NorthScale sono Steve Yen e Dustin Sallings. Mi sono unito a loro poco dopo la fondazione. Inoltre, Damien non è poi entrato a far parte di Couchbase, ha fatto parte di CouchIO / Couch One prima della fusione. Citando una fonte storica divertente: https://youtube.com/watch?v=aZ_JOnU8tkI
Penso che CouchBase sembri essere percepito come l'alternativa "enterprise" di CouchDB. Che in un certo senso sembra essere vero. A parte la mancanza di capacità di allegare file a record (documenti) e endpoint REST "out-of-box" rispetto a CouchDB, CouchBase ha un linguaggio simile a sql, ovvero N1QL (a volte pronunciato Nickel). Questo è uno dei motivi per cui non mi piace / consiglio di usare il termine "NoSQL". Personalmente mi piace il termine "Non relazionale".