Odpowiedzi:
Myślę, że istnieją pewne istotne różnice między CouchDB i Couchbase Server, na które należy zwrócić uwagę.
Nie będę pisać o zaletach przejścia z CouchDB na serwer Couchbase, ponieważ są one opisane prawie wszędzie (patrz Przyszłość CouchDB Damiena Katza lub Couchbase vs. Apache CouchDB przez Couchbase). Zamiast tego spróbuję wyliczyć funkcje CouchDB, których nie znajdziesz na serwerze Couchbase .
Wszystkie nazwy związane z CouchDB i Couchbase mogą być bardzo mylące, więc zaktualizowałem tę odpowiedź, aby zacząć od krótkiego wyjaśnienia najważniejszych.
Istnieje CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... wszystkie różne, a jednak powiązane w sposób wcale nie oczywisty z samych nazw.
Najpierw była CouchDB, baza danych stworzona przez Damiena Katza, byłego programistę IBM. Jego oficjalna nazwa została zmieniona na Apache CouchDB po tym, jak stał się projektem Apache.
Firma o nazwie CouchIO została założona do pracy na Apache CouchDB, a później zmieniła nazwę na CouchOne (przez „swoją nazwę” mam na myśli nazwę firmy - nie nazwę bazy danych).
CouchOne (wcześniej CouchIO) połączył się z Membase (wcześniej NorthScale), tworząc nową spółkę o nazwie Couchbase. Membase (firma) opracował Membase (produkt o tej samej nazwie). Membase został stworzony przez kilku liderów projektu Memcached i wykorzystał protokół Memcached. Po połączeniu CouchOne i Membase, Couchbase kontynuował rozwój oprogramowania Membase, a później zmienił nazwę na Couchbase Server.
Dzisiaj myślę, że większość ludzi wierzy, że Couchbase Server to nowa wersja CouchDB, ale w rzeczywistości jest to nowa wersja Membase. Nadal używa protokołu Memcached, a nie RESTful API CouchDB. Tymczasem CouchDB jest nadal CouchDB, aktywnie utrzymywany i rozwijany jako projekt Apache.
Teraz istotne różnice:
Serwer Couchbase nie jest oprogramowaniem typu open source / wolnym . Istnieją dwie wersje: Community Edition (darmowa, ale bez najnowszych poprawek błędów) i Enterprise Edition (istnieją ograniczenia dotyczące użytkowania, zasady poufności, audyty Couchbase Inc., które „będą przeprowadzane w regularnych godzinach pracy w obiektach Licencjobiorcy” i inne typowe warunki do zastrzeżonego oprogramowania, które wiele osób może uznać za niedopuszczalne).
CouchDB to projekt typu open source / wolne oprogramowanie (bez żadnych zobowiązań) Fundacji Apache Software Foundation, wydany na licencji Apache License, wersja 2.0 (zgodny z DFSG, zatwierdzony przez FSF, zatwierdzony przez OSI, zgodny z GPL, nie podlegający copyleft , przyjazny komercyjnie).
Nigdy nie widziałem tego bezpośrednio wskazanego, ale może to być rzeczywiście najważniejsza różnica między tymi dwiema bazami danych, ponieważ dotyczy ona głęboko filozofii modeli przetwarzania rozproszonego, a nie tylko niektórych funkcji, interfejsów API lub licencji. CouchDB i Couchbase Server całkowicie różnią się filozofią budowania systemów rozproszonych i baz danych.
Zgodnie z twierdzeniem CAP rozproszona baza danych nie może jednocześnie zapewniać spójności, dostępności i tolerancji partycji.
CouchDB jest systemem typu AP (zapewnia dostępność i tolerancję podziału ).
Serwer Couchbase to JEDEN system typu CP (według Wikipedii ) LUB system typu CA (zgodnie z aktualizacją techniczną Couchbase ) - KTÓRE Z NICH SĄ PRAWIDŁOWE? PROSZĘ SKOMENTUJ.
Oto lista funkcji CouchDB, które nie są obsługiwane przez serwer Couchbase:
Te cechy CouchDB mogą być dla Ciebie ważne lub nie, więc to, czy ich brak jest wadą, czy nie, jest ściśle subiektywne, ale uważam, że decyzja o przejściu z CouchDB na Couchbase Server powinna być oparta na tych różnicach i twoja zależność od tych funkcji w twoich bieżących wdrożeniach CouchDB.
Na przykład, jeśli zainteresowałeś się CouchDB po obejrzeniu kanału zmian CouchDB CouchDB, karmisz rozmowę NodeCamp Mikeala Rogersa lub jeden z doskonałych samouczków CouchApp J. Chrisa Andersona, musisz zdać sobie sprawę, że jeśli chcesz przejść na serwer Couchbase będą musieli zapomnieć o prawie wszystkim, o czym rozmawiali.
Z tego powodu powiedziałbym, że serwer Couchbase wygląda jak ewolucja Memcached i Membase (nie ewolucja CouchDB) i jako taki wygląda świetny produkt, jeśli obecnie używasz Memchached lub Membase. Jeśli używasz CouchDB w najbardziej podstawowy sposób, możesz rozważyć użycie serwera Couchbase do tych samych rzeczy i może on lub nie działać lepiej (jeśli nie przeszkadzają ci ograniczenia licencji). Ale jeśli faktycznie korzystasz z funkcji unikalnych w CouchDB (takich jak plik zmian, CouchApps, architektura dwuwarstwowa, replikacja peer-to-peer itp.), Możesz zapomnieć o tych funkcjach lub pozostać przy CouchDB. W każdym razie zapoznaj się z samouczkiem Migracja do Couchbase dla użytkowników CouchDB, zanim pomyślisz o zmianie.
Ludzie często mają złe wrażenie (być może po przeczytaniu rzeczy takich jak „Jaka przyszłość CouchDB? To Couchbase.” ), Że CouchDB jest w jakiś sposób przestarzały przez serwer Couchbase lub że jest to stara, starsza wersja Couchbase. Tymczasem CouchDB jest aktywnie utrzymywanym projektem open source, serwer Couchbase to całkowicie odrębny projekt (jest to nowszy projekt, ale nie jest to nowsza wersja CouchDB - nie są nawet kompatybilne), a ponieważ nawet nowe narzędzia do tworzenia CouchApps nadal zachowują rozwijane (np. patrz projekt Kanso ), to CouchDB nigdzie się nie wybiera.
Mam nadzieję, że to wyjaśni zamieszanie. Proszę mnie poprawić, jeśli coś jest w błędzie.
Serwer Couchbase to w rzeczywistości nowa nazwa serwera Membase (nazwa serwera została zmieniona na serwer Couchbase gdzieś w pobliżu wersji 1.8). Zobacz przegląd Couchbase 2011 Rok :
Niestety zdezorientowaliśmy wielu naszych potencjalnych użytkowników. Oprócz Membase Server i naszych nowych produktów mobilnych zaoferowaliśmy także pojedynczy serwer Couchbase, który był pakietową „dystrybucją” Apache CouchDB. Ponadto zaczęliśmy publikować wersje deweloperskie Couchbase Server 2.0, który włączył technologię CouchDB do Membase Server - ale ten produkt nie był kompatybilny z pojedynczym serwerem Couchbase (lub CouchDB). [...] Serwer Membase zostanie przemianowany na Couchbase Server 1.8 w następnej wersji w styczniu - mały krok, który po prostu łagodzi zamieszanie związane z „nazwą”. Zgodnie z planem od początku, wersja Couchbase Server 2.0 (obecnie w wersji Developer Preview 3) doda funkcjonalność indeksu i zapytań. Podczas gdy Couchbase Server 2.0 będzie zawierać istotną technologię z projektu CouchDB,nie będzie kompatybilny w górę z CouchDB i nie powinien być postrzegany jako „wersja CouchDB”. [podkreślenie dodane]
Są to różne, ale podobne programy. Zremiksowałem treść z górnej odpowiedzi na zdjęcie, które może pomóc wyjaśnić „różnicę”, a także typowe rzeczy:
Komentarz Matta Ingenthrona dodaje do tego:
Aby dodać kontekst / poprawki: założycielami NorthScale są Steve Yen i Dustin Sallings. Dołączyłem do nich wkrótce po założeniu. Ponadto Damien nie dołączył później do Couchbase, był częścią CouchIO / Couch One przed fuzją. Powołując się na zabawne, historyczne źródło: https://youtube.com/watch?v=aZ_JOnU8tkI
Myślę, że CouchBase wydaje się być postrzegana jako „korporacyjna” alternatywa CouchDB. Co w pewnym sensie wydaje się prawdą. Oprócz braku możliwości dołączania plików do rekordów (dokumentów) i „gotowych” punktów końcowych REST w porównaniu do CouchDB, CouchBase ma język podobny do SQL, tj. N1QL (czasami wymawiany jako Nickel). Jest to jeden z powodów, dla których tak naprawdę nie lubię / nie polecam używania terminu „NoSQL”. Osobiście podoba mi się termin „nierelacyjny”.