Разница между CouchDB и Couchbase

Существуют ли существенные различия между CouchDB и Couchbase.

Ответ 1

Мы более подробно описали связь между CouchDB и Couchbase. В двух словах, Couchbase Server берет всю доброжелательность NoSQL CouchDB и дает ему четкий жесткий край замораживания memcache.

Если вы новичок в NoSQL, в основном, вы храните свой JSON в Couchbase. Он очень быстрый и может масштабировать до больших нагрузок трафика, которые вы, скорее всего, увидите.

Как реляционная база данных, она возвращает вам то, что вы храните, когда оно вам нужно. Базы Yay!

В отличие от реляционной базы данных, вместо того, чтобы указывать перед собой то, что вы собираетесь хранить, вы можете просто сохранить ее (мы обновляем обновление, если вы используете memcached), и мы поможем вам отсортировать это позже.

Ответ 2

Я думаю, что есть некоторые существенные различия между CouchDB и Couchbase Server, которые необходимо указать.

Я не буду писать о преимуществах перехода с CouchDB на Couchbase Server, потому что они описаны практически везде (см. The Future of CouchDB Дэмиеном Кацем или Couchbase vs. 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.

Теперь к соответствующим отличиям:

Licensing

Сервер Couchbase не полностью open-source/бесплатное программное обеспечение. Существуют две версии: Community Edition (бесплатные, но не последние исправления ошибок) и Enterprise Edition (существуют ограничения на использование, положения о конфиденциальности, аудиты Couchbase Inc., которые "будут проводиться в обычные рабочие часы на объектах Лицензиата" и другие термины, типичные для проприетарного программного обеспечения, которые многие люди могут признать неприемлемыми).

CouchDB - проект с открытым исходным кодом/свободным программным обеспечением (без привязки) проекта Apache Software Foundation и выпущен под Apache License, версия 2.0 (совместимый с DFSG, одобренный FSF, одобренный OSI, совместимый с GPL, не копилефт, коммерчески удобный).

Философия

Я никогда не видел, чтобы это прямо указывалось, но это может быть фактически самое важное различие между этими двумя базами данных, поскольку оно глубоко связано с основополагающей философией распределенных вычислительных моделей, а не только с некоторыми функциями, API или лицензированием. CouchDB и Couchbase Server полностью отличаются своей философией построения распределенных систем и баз данных.

В соответствии с теоремой CAP невозможно, чтобы распределенная база данных одновременно обеспечивала согласованность, доступность и допустимость разделов.

CouchDB - это система AP (обеспечивает Доступность и Допуск к разделению).

Сервер Couchbase - это система типа CP (согласно Wikipedia) ИЛИ система типа CA (согласно Техническое обновление Couchbase) - КОТОРЫЕ ЭТИ ПРАВИЛЬНЫЕ? ПОЖАЛУЙСТА, КОММЕНТАРИЙ.

Функции

Вот что я нашел в списке функций CouchDB, которые не поддерживаются сервером Couchbase:

  • no RESTful API (только для представлений, а не для операций CRUD)
  • no _ изменяет фид
  • no одноранговая репликация
  • no CouchApps
  • no Futon (имеется другой доступный интерфейс администрирования)
  • no идентификаторы документов
  • нет понятия баз данных (есть только ковши)
  • нет репликации между базой данных CouchDB и сервером Couchbase
  • нет явных вложений (вы должны хранить дополнительные файлы в качестве новых пар ключ/значение)
  • API HTTP для всего (вам нужно использовать SDK Couchbase Server или одну из экспериментальных клиентских библиотек в Couchbase Develop, поэтому никаких экспериментов с curl и wget)
  • no CouchDB API (вместо этого он использует API Memcached)
  • вы не можете делать все из браузера (вам нужно написать серверное приложение)
  • невозможна двухуровневая архитектура для веб-приложений (вам нужно написать приложение на стороне сервера, чтобы сидеть между браузером и базой данных, например, с реляционными базами данных).
  • no конечная согласованность
  • не полностью open-source/бесплатное программное обеспечение
  • не замена для CouchDB (похоже, для замены Memcached вместо этого)

Эти функции CouchDB могут или не могут быть важны для вас, так как недостаток их является недостатком или нет, является строго субъективным, но я считаю, что решение о том, следует ли переключиться с CouchDB на Couchbase Server или нет, должно основываться на эти различия и ваша зависимость от этих функций в ваших текущих развертываниях CouchDB.

Например, если вы заинтересовались CouchDB после просмотра The CouchDB меняет фид Обсуждение NodeCamp от Mikeal Rogers или одного из величайших учебников CouchApp J. Chris Anderson, тогда вы должны понимать, что если вы хотите переключиться на Couchbase Server, вам придется забыть о многом, о чем они говорили.

Из-за этого я бы сказал, что Couchbase Server выглядит как эволюция Memcached и Membase (а не эволюция CouchDB), и, как таковая, он выглядит как отличный продукт, если вы в настоящее время используете Memchached или Membase. Если вы используете CouchDB самым основным способом, вы можете использовать Couchbase Server для одних и тех же вещей, и он может работать или не работать лучше (если вы не возражаете против ограничений лицензии). Но если вы действительно используете какие-либо уникальные функции в CouchDB (например, канал изменений, CouchApps, двухуровневая архитектура, одноранговая репликация и т.д.), Вы можете либо забыть об этих функциях, либо остаться с CouchDB. В любом случае не забудьте прочитать и понять учебник Migration to Couchbase для пользователей CouchDB, прежде чем думать о переключении.

Люди часто получают неправильное впечатление (возможно, после чтения таких вещей, как "Какое будущее CouchDB? It Couchbase." ), что CouchDB каким-то образом устаревший на Couchbase Server, или что это старая, устаревшая версия Couchbase. Между тем CouchDB является активно поддерживаемым проектом с открытым исходным кодом, сервер Couchbase - это совершенно отдельный проект (это более новый проект, но он не является более новая версия CouchDB - они даже не совместимы), и поскольку даже новые инструменты для создания CouchApps все еще продолжают развиваться (например, см. проект Couchbase 2011 Year in Review:

К сожалению, мы сбились с толку из многих наших потенциальных пользователей. В дополнение к Membase Server и нашим новым мобильным продуктам мы также предложили Couchbase Single Server, который был пакетным дистрибутивом Apache CouchDB. Кроме того, мы начали выпускать предварительные просмотры разработчиков Couchbase Server 2.0, которые включили технологию CouchDB в Membase Server, но этот продукт не был совместим с Couchbase Single Server (или CouchDB). [...] Сервер Membase будет переименован в Couchbase Server 1.8 в следующем выпуске в январе - крошечный шаг, который просто облегчает путаницу "имя". Как было запланировано с самого начала, выпуск Couchbase Server 2.0 (в настоящее время в Developer Preview 3) добавит функции индекса и запроса. В то время как Couchbase Server 2.0 будет включать в себя существенные технологии из проекта CouchDB, он не будет совместим с CouchDB и не должен рассматриваться как "версия CouchDB". [выделено мной]

См. также:

Ответ 3

Это разные, но похожие программы. Я сделал ремикс содержимого из верхнего ответа в картинку, которая может помочь прояснить "разницу", а также общие вещи:

the other answer linked above is an extended description of this image

Комментарий от Мэтта Ингентрона добавляет к этому:

Чтобы добавить некоторый контекст/исправления: основатели NorthScale - Стив Йен и Дастин Саллингс. Я присоединился к ним вскоре после основания. Кроме того, Дэмиен не присоединился к Couchbase, он был частью CouchIO/Couch One до слияния. Цитирую забавный исторический источник: https://youtube.com/watch?v=aZ_JOnU8tkI