Ответы:
Я думаю, что есть некоторые существенные различия между CouchDB и Couchbase Server, на которые необходимо указать.
Я не буду писать о преимуществах перехода с CouchDB на сервер Couchbase, потому что они описаны почти везде (см. «Будущее CouchDB » Дэмиена Каца или « Couchbase против Apache CouchDB» от Couchbase). Вместо этого я попытаюсь перечислить функции CouchDB, которые вы не найдете на сервере Couchbase .
Все названия, относящиеся к CouchDB и Couchbase, могут сбивать с толку, поэтому я обновил этот ответ, чтобы начать с краткого объяснения наиболее важных.
Существуют CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB ... все разные и вместе с тем связанные не совсем очевидные из названий.
Сначала была CouchDB, база данных, созданная Дэмиеном Кацем, бывшим разработчиком IBM. Его официальное название было изменено на Apache CouchDB после того, как он стал проектом Apache.
Компания под названием CouchIO была основана для работы над Apache CouchDB, а затем сменила название на CouchOne (под «своим именем» я подразумеваю название компании, а не имя базы данных).
CouchOne (ранее CouchIO) объединился с Membase (ранее NorthScale), создав новую компанию под названием Couchbase. Membase (компания) разработала Membase (продукт с таким же названием). Membase была создана несколькими лидерами проекта Memcached и использовала протокол Memcached. После слияния CouchOne и Membase Couchbase продолжила разработку программного обеспечения Membase, а затем сменила название на Couchbase Server.
Сегодня я думаю, что большинство людей считают, что Couchbase Server - это новая версия CouchDB, но на самом деле это новая версия Membase. Он по-прежнему использует протокол Memcached, а не RESTful API CouchDB. Между тем, CouchDB по-прежнему является CouchDB, активно поддерживается и совершенствуется как проект Apache.
Теперь о соответствующих различиях:
Couchbase Server не является полностью открытым / свободным программным обеспечением . Существует две версии: Community Edition (бесплатная, но без последних исправлений ошибок) и Enterprise Edition (существуют ограничения на использование, положения о конфиденциальности, аудиты Couchbase Inc., которые «будут проводиться в обычные рабочие часы на объектах Лицензиата» и другие типичные условия к проприетарному программному обеспечению, которое многие могут счесть неприемлемым).
CouchDB является проектом с открытым исходным кодом / свободным программным обеспечением (без каких-либо условий) проекта Apache Software Foundation и выпущен по лицензии Apache версии 2.0 (DFSG-совместимая, FSF-одобренная, OSI-совместимая, GPL-совместимая, без авторского лева). , коммерчески дружественный).
Я никогда не видел, чтобы на это прямо указывали, но на самом деле это может быть самым важным различием между этими двумя базами данных, потому что оно глубоко связано с философией распределенных вычислений, а не только с определенными функциями, API или лицензированием. CouchDB и Couchbase Server полностью отличаются своей философией построения распределенных систем и баз данных.
Согласно теореме CAP для распределенной базы данных невозможно обеспечить согласованность, доступность и допуск раздела.
CouchDB - это система типа AP (обеспечивает доступность и допуск раздела ).
Couchbase Server - это ЛИБО система типа CP (согласно Википедии ) ИЛИ система типа CA (согласно техническому обновлению Couchbase ) - ЧТО ИЗ ЭТОГО ПРАВИЛЬНО? ПОЖАЛУЙСТА, ПРОКОММЕНТИРУЙТЕ.
Вот что я обнаружил в списке функций CouchDB, которые не поддерживаются сервером Couchbase:
Эти функции CouchDB могут или не могут быть важны для вас, поэтому, является ли их недостаток недостатком или нет, строго субъективно, но я думаю, что решение о том, переключаться с CouchDB на Couchbase Server или нет, должно основываться на этих различиях и ваша зависимость от этих функций в ваших текущих развертываниях CouchDB.
Например, если вы заинтересовались CouchDB после просмотра изменений в канале CouchDB NodeCamp talk от Mikeal Rogers или одного из замечательных учебных пособий CouchApp Дж. Криса Андерсона, то вам следует осознать, что если вы хотите переключиться на Couchbase Server, то вы придется забыть почти обо всем, о чем они говорили.
Поэтому я бы сказал, что Couchbase Server выглядит как эволюция Memcached и Membase (не эволюция CouchDB) и как таковой выглядит как отличный продукт, если вы в настоящее время используете Memchached или Membase. Если вы используете CouchDB самым простым способом, то вы можете рассмотреть возможность использования Couchbase Server для тех же целей, и он может работать, а может и не работать лучше (если вы не возражаете против лицензионных ограничений). Но если вы на самом деле используете какие-либо функции, которые являются уникальными в CouchDB (например, ленту изменений, CouchApps, двухуровневую архитектуру, одноранговую репликацию и т. Д.), То вы можете либо забыть об этих функциях, либо остаться с CouchDB. В любом случае, не забудьте прочитать и понять руководство по миграции на Couchbase для пользователей CouchDB, прежде чем думать о переключении.
Люди часто получают неправильное представление (возможно, прочитав такие вещи, как «Каково будущее CouchDB? Это Couchbase» ), что CouchDB каким-то образом устарел на Couchbase Server или что это старая, устаревшая версия Couchbase. Между тем CouchDB - это активно поддерживаемый проект с открытым исходным кодом, сервер Couchbase - это совершенно отдельный проект (это более новый проект, но он не является более новой версией CouchDB - они даже не совместимы), и поскольку даже новые инструменты для создания CouchApps по-прежнему сохраняются разрабатывается (например, см. проект Kanso ), то CouchDB скоро никуда не денется.
Я надеюсь, что это проясняет путаницу. Пожалуйста, поправьте меня, если я здесь ошибаюсь.
Couchbase Server - это фактически новое имя для Membase Server (Membase Server был переименован в Couchbase Server где-то в версии 1.8). Смотрите Couchbase 2011 год в обзоре :
К сожалению, мы перепутали многих наших потенциальных пользователей. В дополнение к Membase Server и нашим новым мобильным продуктам мы также предложили Couchbase Single Server, который являлся «дистрибутивом» Apache CouchDB. Кроме того, мы начали выпускать предварительные версии для разработчиков Couchbase Server 2.0, который включил технологию CouchDB в Membase Server, но этот продукт не был совместим с Couchbase Single Server (или CouchDB). [...] Membase Server будет переименован в Couchbase Server 1.8 в следующем выпуске в январе - крошечный шаг, который просто устраняет путаницу «имен». Как и планировалось с самого начала, выпуск Couchbase Server 2.0 (в настоящее время в Developer Preview 3) добавит функции индексирования и запросов. Хотя Couchbase Server 2.0 будет включать в себя существенную технологию из проекта CouchDB,он не будет совместим с CouchDB и не должен рассматриваться как «версия CouchDB». [выделение добавлено]
Это разные, но похожие программы. Я сделал ремикс из верхнего ответа в картинку, которая может помочь прояснить «разницу», а также общие вещи:
Комментарий от Мэтта Ингентрона добавляет к этому:
Чтобы добавить контекст / исправления: основатели NorthScale - Стив Йен и Дастин Саллингс. Я присоединился к ним вскоре после основания. Кроме того, Дэмиен не присоединился к Couchbase, он был частью CouchIO / Couch One до слияния. Цитирую забавный исторический источник: https://youtube.com/watch?v=aZ_JOnU8tkI
Я думаю, что CouchBase, кажется, воспринимается как «корпоративная» альтернатива CouchDB. Что в некотором смысле кажется правдой. Помимо отсутствия возможности прикреплять файлы к записям (документам) и «готовым» конечным точкам REST по сравнению с CouchDB, CouchBase имеет язык, похожий на sql, то есть N1QL (иногда произносится как никель). Это одна из причин, почему я не очень люблю / не рекомендую использовать термин «NoSQL». Мне лично нравится термин «нереляционный».