Réponses:
Je pense qu'il y a des différences essentielles entre CouchDB et Couchbase Server qui doivent être signalées.
Je n'écrirai pas sur les avantages du passage de CouchDB au serveur Couchbase car ceux-ci sont décrits à peu près partout (voir The Future of CouchDB by Damien Katz ou Couchbase vs.Apache CouchDB by Couchbase). Au lieu de cela, j'essaierai d'énumérer les fonctionnalités de CouchDB que vous ne trouverez pas sur le serveur Couchbase .
Tous les noms relatifs à CouchDB et Couchbase peuvent être vraiment déroutants, j'ai donc mis à jour cette réponse, pour commencer par une brève explication des plus importants.
Il y a CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... tous différents et pourtant liés d'une manière qui n'est pas du tout évidente du seul nom.
Tout d'abord, il y avait CouchDB, une base de données créée par Damien Katz, un ancien développeur IBM. Son nom officiel a été changé en Apache CouchDB après qu'il soit devenu un projet Apache.
Une entreprise nommée CouchIO a été fondée pour travailler sur Apache CouchDB et a ensuite changé son nom en CouchOne (par «son nom», je veux dire le nom de l'entreprise - pas le nom de la base de données).
CouchOne (anciennement CouchIO) a fusionné avec Membase (anciennement NorthScale) pour former une nouvelle société appelée Couchbase. Membase (la société) a développé Membase (un produit du même nom). Membase a été créée par plusieurs leaders du projet Memcached et a utilisé le protocole Memcached. Après la fusion de CouchOne et de Membase, Couchbase a poursuivi le développement du logiciel Membase et a par la suite changé de nom pour Couchbase Server.
Aujourd'hui, je pense que la plupart des gens croient que Couchbase Server est une nouvelle version de CouchDB mais c'est, en fait, une nouvelle version de Membase. Il utilise toujours le protocole Memcached et non l'API RESTful de CouchDB. Pendant ce temps, CouchDB est toujours CouchDB, activement maintenu et amélioré en tant que projet Apache.
Passons maintenant aux différences pertinentes:
Le serveur Couchbase n'est pas un logiciel entièrement open source / gratuit . Il existe deux versions: Community Edition (gratuite mais pas de correctifs de bogues les plus récents) et Enterprise Edition (il y a des restrictions d'utilisation, des dispositions de confidentialité, des audits par Couchbase Inc. qui "seront effectués pendant les heures normales de travail dans les installations du Licencié" et d' autres termes typiques à des logiciels propriétaires que beaucoup de gens peuvent trouver inacceptables).
CouchDB est un projet de logiciel libre / gratuit (sans aucune chaîne attachée) de The Apache Software Foundation et est publié sous la licence Apache, version 2.0 (compatible DFSG, approuvé FSF, approuvé OSI, compatible GPL, non copyleft) , commercial).
Je ne l'ai jamais vu directement souligné, mais c'est peut-être la différence la plus importante entre ces deux bases de données, car il s'agit profondément de la philosophie sous-jacente des modèles informatiques distribués et pas seulement de certaines fonctionnalités, API ou licences. CouchDB et le serveur Couchbase diffèrent complètement dans leur philosophie de création de systèmes distribués et de bases de données.
Selon le théorème de CAP, il est impossible pour une base de données distribuée de fournir simultanément cohérence, disponibilité et tolérance de partition.
CouchDB est un système de type AP (fournit la disponibilité et la tolérance de partition ).
Le serveur Couchbase est soit un système de type CP (selon Wikipedia ) OU un système de type CA (selon la mise à jour technique de Couchbase ) - LEQUEL DE CEUX EST CORRECT? COMMENTEZ S'IL VOUS PLAÎT.
Voici ce que j'ai trouvé être une liste de fonctionnalités CouchDB qui ne sont pas prises en charge par le serveur Couchbase:
Ces fonctionnalités de CouchDB peuvent ou non être importantes pour vous, donc si leur absence est un inconvénient ou non est strictement subjectif, mais je pense que la décision de passer de CouchDB à Couchbase Server ou non devrait être basée sur ces différences et votre dépendance à l'égard de ces fonctionnalités dans vos déploiements CouchDB actuels.
Par exemple, si vous vous êtes intéressé à CouchDB après avoir regardé les changements de CouchDB, alimentez NodeCamp talk par Mikeal Rogers ou l'un des excellents tutoriels CouchApp de J. Chris Anderson, alors vous devez vous rendre compte que si vous voulez passer au serveur Couchbase, vous devra oublier à peu près tout ce dont ils parlaient.
Pour cette raison, je dirais que Couchbase Server ressemble à une évolution de Memcached et Membase (pas une évolution de CouchDB) et à ce titre, il ressemble à un excellent produit si vous utilisez actuellement Memchached ou Membase. Si vous utilisez CouchDB de la manière la plus élémentaire, vous pouvez envisager d'utiliser le serveur Couchbase pour les mêmes choses et il peut ou non fonctionner mieux (si cela ne vous dérange pas les restrictions de licence). Mais si vous utilisez réellement l'une des fonctionnalités uniques de CouchDB (comme le flux de modifications, les CouchApps, l'architecture à deux niveaux, la réplication entre homologues, etc.), vous pouvez soit oublier ces fonctionnalités, soit rester avec CouchDB. Dans tous les cas, assurez-vous de lire et de comprendre le didacticiel Migration vers Couchbase pour les utilisateurs de CouchDB avant de penser à changer.
Les gens ont souvent la mauvaise impression (peut-être après avoir lu des choses comme "Quel est l'avenir de CouchDB? C'est Couchbase." ) Que CouchDB est en quelque sorte obsolète par le serveur Couchbase, ou qu'il s'agit d'une ancienne version héritée de Couchbase. Pendant ce temps, CouchDB est un projet open source activement maintenu, le serveur Couchbase est un projet complètement distinct (c'est un projet plus récent mais ce n'est pas une version plus récente de CouchDB - ils ne sont même pas compatibles) et puisque même de nouveaux outils pour créer des CouchApps continuent en cours de développement (par exemple, voir le projet Kanso ) alors CouchDB ne va nulle part bientôt.
J'espère que cela clarifie la confusion. Veuillez me corriger si je me trompe sur quelque chose ici.
Couchbase Server est en fait un nouveau nom pour Membase Server (le Membase Server a été renommé Couchbase Server quelque part autour de la version 1.8). Voir le bilan de l'année 2011 de Couchbase :
Malheureusement, nous avons confondu bon nombre de nos utilisateurs potentiels. En plus de Membase Server et de nos nouveaux produits mobiles, nous avons également proposé Couchbase Single Server qui était une «distribution» packagée d'Apache CouchDB. En plus de cela, nous avons commencé à publier des aperçus des développeurs de Couchbase Server 2.0, qui incorporaient la technologie CouchDB dans Membase Server - mais ce produit n'était pas compatible avec Couchbase Single Server (ou CouchDB). [...] Membase Server sera renommé Couchbase Server 1.8 lors de sa prochaine version en janvier - une toute petite étape qui atténue tout simplement la confusion des «noms». Comme prévu depuis le début, la version de Couchbase Server 2.0 (actuellement à Developer Preview 3) ajoutera des fonctionnalités d'index et de requête. Alors que Couchbase Server 2.0 incorporera une technologie substantielle du projet CouchDB,il ne sera pas compatible avec CouchDB et ne devrait pas être considéré comme une «version de CouchDB». [non souligné dans l'original]
Ce sont des logiciels différents mais similaires. J'ai remixé le contenu de la réponse du haut dans une image qui pourrait aider à clarifier la "différence" ainsi que les choses courantes:
Un commentaire de Matt Ingenthron ajoute à cela:
Pour ajouter un peu de contexte / corrections: les fondateurs de NorthScale sont Steve Yen et Dustin Sallings. Je les ai rejoints peu de temps après la fondation. De plus, Damien n'a pas rejoint Couchbase plus tard, il faisait partie de CouchIO / Couch One avant la fusion. Citant une source historique amusante: https://youtube.com/watch?v=aZ_JOnU8tkI
Je pense que CouchBase semble être perçu comme l'alternative «entreprise» de CouchDB. Ce qui semble en quelque sorte être vrai. Mis à part le manque de capacité à joindre des fichiers aux enregistrements (documents) et aux points de terminaison REST `` prêts à l'emploi '' par rapport à CouchDB, CouchBase a un langage similaire à SQL, c'est-à-dire N1QL (parfois prononcé Nickel). C'est l'une des raisons pour lesquelles je n'aime pas vraiment / ne recommande pas d'utiliser le terme «NoSQL». Personnellement, j'aime le terme «non relationnel».