Я думаю, что есть некоторые существенные различия между CouchDB и Couchbase Server, на которые нужно обратить внимание.
Я не буду писать о преимуществах перехода с CouchDB на Couchbase Server, потому что они описаны почти везде(см. Будущее CouchDB Дэмиена Каца или Couchbase против Apache CouchDB Couchbase).Вместо этого я попытаюсь перечислить функций CouchDB, которые вы не найдете на Couchbase Server .
Все названия, относящиеся к 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 не полностью open source / свободное программное обеспечение .Существует две версии: Community Edition (бесплатная, но без последних исправлений ошибок) и Enterprise Edition (есть ограничения на использование, положения о конфиденциальности, аудиты Couchbase Inc., которые «будут проводиться в рабочее время на объектах Лицензиата» и другие термины , типичные для проприетарного программного обеспечения, которые многие могут счесть неприемлемыми).
CouchDB - это проект с открытым исходным кодом / бесплатное программное обеспечение (без каких-либо условий), выпущенный Apache Software Foundation и выпущенный под Лицензия Apache, версия 2.0 (DFSG-совместимая, FSF-одобренная, OSI-совместимая, GPL-совместимая, без авторского лева, коммерческая).
Philosophy
У меня естьникогда не видел, чтобы на это прямо указывалось, но на самом деле это может быть самым важным отличием между этими двумя базами данных, потому что оно глубоко касается философии моделей распределенных вычислений, а не только определенных функций, API или лицензирования.CouchDB и Couchbase Server полностью различаются по своей философии построения распределенных систем и баз данных.
Согласно теореме CAP невозможно, чтобы распределенная база данных одновременно обеспечивала согласованность, доступность и допуск раздела.
CouchDB - это система типа AP (обеспечивает доступность и допуск раздела ).
Сервер Couchbase - это ЛИБО система типа CP (согласно Wikipedia ) ИЛИ система CA (согласно Couchbaseтехническое обновление ) - ЧТО ЭТО ПРАВИЛЬНО?ПОЖАЛУЙСТА, КОММЕНТАРИЙ.
Особенности
Вот список функций CouchDB, которые не поддерживаются сервером Couchbase:
- нет RESTful API (только для представлений, а не для операций CRUD)
- нет _changes feed
- нет одноранговая репликация
- нет CouchApps
- нет Futon (доступен другой интерфейс администрирования)
- нет идентификаторы документов
- нет понятия баз данных (есть только сегменты)
- нет репликации между базой данных CouchDB и сервером Couchbase
- нет явных вложений (вы должны хранить дополнительные файлы как новые пары ключ / значение)
- нет HTTP API для всего (вам нужно использовать SDK Couchbase Server или одну из экспериментальных клиентских библиотек на Couchbase Develop , поэтому не нужно экспериментировать с curl и wget )
- нет CouchDB API (вместо него используется Memcached API)
- вы не можете делать все из браузера (вам нужно написать приложение на стороне сервера)
- двухуровневая архитектура для веб-приложений невозможна (необходимо написать серверное приложение, которое будет находиться между браузером и базой данных, как в реляционных базах данных)
- нет возможная последовательность
- не совсем с открытым исходным кодом / свободное программное обеспечение
- не является заменой для CouchDB (вместо этого используется замена Memcached)
Эти функции CouchDB могут или не могут быть важными для вас, поэтому, является ли их недостаток недостатком или нет, строго субъективно, но я думаю, что решение о том, переключаться с CouchDB на сервер Couchbase или нет, должно основываться на эти различия и ваша зависимость от этих функций в ваших текущих развертываниях CouchDB.
Например, если вы заинтересовались CouchDB после просмотра CouchDB меняет канал Доклад NodeCamp от Mikeal Rogers или одно из замечательных учебных пособий CouchApp Дж. Криса Андерсона, то вы должны понимать, что если вы Если вы захотите переключиться на сервер Couchbase, вам придется забыть обо всем, о чем они говорили.
Из-за этого я бы сказал, что Couchbase Server выглядит как эволюция Memcached и Membase (не эволюция CouchDB) и как таковой выглядит как отличный продукт, если вы в настоящее время используете Memchached или Membase. Если вы используете CouchDB самым простым способом, то вы можете рассмотреть возможность использования Couchbase Server для тех же целей, и он может работать или не работать лучше (если вы не против лицензионных ограничений). Но если вы на самом деле используете какие-либо функции, которые являются уникальными в CouchDB (например, фид изменений, CouchApps, двухуровневая архитектура, одноранговая репликация и т. Д.), То вы можете либо забыть об этих функциях, либо остаться с CouchDB.
В любом случае, прежде чем задуматься о переключении, обязательно прочитайте и поймите учебник Миграция на Couchbase для пользователей CouchDB .
У людей часто складывается неправильное впечатление (может быть, после прочтения таких вещей, как «Какое будущее у CouchDB? Это Couchbase.» ), что CouchDB каким-то образом устаревает сервером Couchbase, или что он старый, устаревшая версия 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». [выделение добавлено]
Смотри также: