Antworten:
Ich denke, es gibt einige wesentliche Unterschiede zwischen CouchDB und Couchbase Server, auf die hingewiesen werden muss.
Ich werde nicht über die Vorteile des Wechsels von CouchDB zum Couchbase-Server schreiben, da diese fast überall beschrieben werden (siehe Die Zukunft von CouchDB von Damien Katz oder Couchbase vs. Apache CouchDB von Couchbase). Stattdessen werde ich versuchen, Funktionen von CouchDB aufzulisten, die Sie auf dem Couchbase-Server nicht finden .
Alle Namen in Bezug auf CouchDB und Couchbase können sehr verwirrend sein. Daher habe ich diese Antwort aktualisiert, um mit einer kurzen Erläuterung der wichtigsten zu beginnen.
Es gibt CouchDB, CouchIO, CouchOne, Couchbase, Couchbase-Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... alle unterschiedlich und doch auf eine Weise verwandt, die aus den Namen allein überhaupt nicht ersichtlich ist.
Zuerst gab es CouchDB, eine Datenbank, die von Damien Katz, einem ehemaligen IBM-Entwickler, erstellt wurde. Sein offizieller Name wurde in Apache CouchDB geändert, nachdem es ein Apache-Projekt wurde.
Eine Firma namens CouchIO wurde gegründet, um an Apache CouchDB zu arbeiten, und später ihren Namen in CouchOne geändert (mit "Name" meine ich den Firmennamen - nicht den Datenbanknamen).
CouchOne (ehemals CouchIO) fusionierte mit Membase (ehemals NorthScale) zu einer neuen Firma namens Couchbase. Membase (das Unternehmen) entwickelte Membase (ein gleichnamiges Produkt). Membase wurde von mehreren Leitern des Memcached-Projekts erstellt und verwendete das Memcached-Protokoll. Nach der Fusion von CouchOne und Membase setzte Couchbase die Entwicklung der Membase-Software fort und änderte später ihren Namen in Couchbase Server.
Heute denke ich, dass die meisten Leute glauben, dass Couchbase Server eine neue Version von CouchDB ist, aber es ist tatsächlich eine neue Version von Membase. Es wird weiterhin das Memcached-Protokoll und nicht die RESTful-API von CouchDB verwendet. In der Zwischenzeit ist CouchDB immer noch CouchDB, das als Apache-Projekt aktiv gepflegt und erweitert wird.
Nun zu den relevanten Unterschieden:
Der Couchbase Server ist keine vollständig Open Source / freie Software . Es gibt zwei Versionen: Community Edition (kostenlos, aber keine neuesten Fehlerkorrekturen) und Enterprise Edition (es gibt Nutzungsbeschränkungen, Vertraulichkeitsbestimmungen, Audits von Couchbase Inc., die "während der regulären Geschäftszeiten in den Einrichtungen des Lizenznehmers durchgeführt werden" und andere typische Bedingungen auf proprietäre Software, die viele Menschen möglicherweise für inakzeptabel halten).
CouchDB ist ein Open-Source- / freies Softwareprojekt (ohne Bedingungen) der Apache Software Foundation und wird unter der Apache-Lizenz Version 2.0 (DFSG-kompatibel, FSF-genehmigt, OSI-genehmigt, GPL-kompatibel, nicht kopyleft) veröffentlicht , kommerziell freundlich).
Ich habe noch nie direkt darauf hingewiesen, aber dies kann tatsächlich der wichtigste Unterschied zwischen diesen beiden Datenbanken sein, da es tief um die zugrunde liegende Philosophie verteilter Computermodelle geht und nicht nur um bestimmte Funktionen, APIs oder Lizenzen. CouchDB und der Couchbase Server unterscheiden sich völlig in ihrer Philosophie, verteilte Systeme und Datenbanken aufzubauen.
Nach dem CAP-Theorem ist es für eine verteilte Datenbank unmöglich, gleichzeitig Konsistenz, Verfügbarkeit und Partitionstoleranz bereitzustellen.
CouchDB ist ein AP- System (bietet Verfügbarkeit und Partitionstoleranz ).
Couchbase Server ist entweder ein CP- System (laut Wikipedia ) oder ein CA- System (gemäß Couchbase Technical Update ) - WELCHES IST RICHTIG? BITTE KOMMENTIEREN.
Ich habe festgestellt, dass dies eine Liste von CouchDB-Funktionen ist, die vom Couchbase-Server nicht unterstützt werden:
Diese Funktionen von CouchDB können für Sie wichtig sein oder auch nicht. Ob das Fehlen von Funktionen ein Nachteil ist oder nicht, ist streng subjektiv. Ich denke jedoch, dass die Entscheidung, ob Sie von CouchDB zu Couchbase Server wechseln oder nicht, auf diesen Unterschieden beruhen sollte Ihre Abhängigkeit von diesen Funktionen in Ihren aktuellen CouchDB-Bereitstellungen.
Wenn Sie sich beispielsweise für CouchDB interessiert haben, nachdem Sie den NodeCamp-Vortrag von The CouchDB-Änderungen von Mikeal Rogers oder eines der großartigen CouchApp-Tutorials von J. Chris Anderson gesehen haben, müssen Sie sich darüber im Klaren sein, dass Sie zum Couchbase-Server wechseln möchten Ich werde so ziemlich alles vergessen müssen, worüber sie gesprochen haben.
Aus diesem Grund würde ich sagen, dass Couchbase Server wie eine Weiterentwicklung von Memcached und Membase (keine Weiterentwicklung von CouchDB) aussieht und als solches wie ein großartiges Produkt aussieht, wenn Sie derzeit Memchached oder Membase verwenden. Wenn Sie CouchDB auf die grundlegendste Weise verwenden, können Sie in Betracht ziehen, den Couchbase-Server für die gleichen Zwecke zu verwenden, und er kann eine bessere Leistung erzielen oder auch nicht (wenn Sie die Lizenzbeschränkungen nicht beachten). Wenn Sie jedoch tatsächlich eine der in CouchDB einzigartigen Funktionen verwenden (z. B. den Änderungsfeed, CouchApps, zweistufige Architektur, Peer-to-Peer-Replikation usw.), können Sie diese Funktionen entweder vergessen oder bei CouchDB bleiben. Lesen und verstehen Sie in jedem Fall das Lernprogramm zur Migration zu Couchbase für CouchDB-Benutzer, bevor Sie über einen Wechsel nachdenken.
Menschen haben oft den falschen Eindruck (vielleicht nachdem sie Dinge wie "Was ist die Zukunft von CouchDB? Es ist Couchbase." Gelesen ), dass CouchDB vom Couchbase-Server irgendwie veraltet ist oder dass es sich um eine alte, ältere Version von Couchbase handelt. Während CouchDB ein aktiv gepflegtes Open-Source-Projekt ist, ist Couchbase Server ein völlig separates Projekt (es ist ein neueres Projekt, aber es ist keine neuere Version von CouchDB - sie sind nicht einmal kompatibel) und da auch neue Tools zum Erstellen von CouchApps noch erhalten sind Wenn CouchDB entwickelt wird (siehe z. B. das Kanso- Projekt), wird es nicht bald irgendwohin gehen.
Ich hoffe, es klärt die Verwirrung. Bitte korrigieren Sie mich, wenn ich hier etwas falsch mache.
Couchbase Server ist eigentlich ein neuer Name für den Membase Server (der Membase Server wurde irgendwo in Version 1.8 in Couchbase Server umbenannt). Siehe Couchbase 2011 Jahresrückblick :
Leider haben wir viele unserer potenziellen Benutzer verwirrt. Neben Membase Server und unseren neuen mobilen Produkten haben wir auch Couchbase Single Server angeboten, eine verpackte „Distribution“ von Apache CouchDB. Darüber hinaus haben wir begonnen, Entwicklervorschauen von Couchbase Server 2.0 zu veröffentlichen, in denen die CouchDB-Technologie in Membase Server integriert war. Dieses Produkt war jedoch nicht mit Couchbase Single Server (oder CouchDB) kompatibel. [...] Membase Server wird bei seiner nächsten Veröffentlichung im Januar in Couchbase Server 1.8 umbenannt - ein winziger Schritt, der die Verwirrung um den Namen einfach lindert. Wie von Anfang an geplant, wird die Version Couchbase Server 2.0 (derzeit in Developer Preview 3) Index- und Abfragefunktionen hinzufügen. Während Couchbase Server 2.0 wesentliche Technologien aus dem CouchDB-Projekt enthalten wird,Es ist nicht aufwärtskompatibel mit CouchDB und sollte nicht als "Version von CouchDB" angesehen werden. [Betonung hinzugefügt]
Sie sind verschiedene, aber ähnliche Software. Ich habe den Inhalt aus der oberen Antwort in ein Bild umgewandelt, das helfen könnte, den "Unterschied" sowie die allgemeinen Dinge zu verdeutlichen:
Ein Kommentar von Matt Ingenthron fügt hinzu:
Um einige Kontexte / Korrekturen hinzuzufügen: Die Gründer von NorthScale sind Steve Yen und Dustin Sallings. Ich bin kurz nach der Gründung zu ihnen gekommen. Außerdem trat Damien später nicht Couchbase bei, sondern war vor der Fusion Teil von CouchIO / Couch One. Unter Berufung auf eine unterhaltsame, historische Quelle: https://youtube.com/watch?v=aZ_JOnU8tkI
Ich denke, CouchBase scheint als "Enterprise" -Alternative von CouchDB wahrgenommen zu werden. Was in gewisser Weise wahr zu sein scheint. Abgesehen von der mangelnden Möglichkeit, Dateien an Datensätze (Dokumente) und sofort einsatzbereite REST-Endpunkte anzuhängen, verfügt CouchBase im Vergleich zu CouchDB über eine SQL-ähnliche Sprache, dh N1QL (manchmal als Nickel ausgesprochen). Dies ist einer der Gründe, warum ich den Begriff 'NoSQL' nicht wirklich mag / empfehle. Ich persönlich mag den Begriff "nicht relational".