Відповіді:
Я думаю, що між CouchDB і Couchbase Server є деякі суттєві відмінності, на які потрібно звернути увагу.
Я не пишу про переваги переходу з CouchDB на Couchbase Server, тому що вони описані досить скрізь (див . Майбутнє 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 повністю відрізняються за своєю філософією побудови розподілених систем та баз даних.
Згідно теореми CAP неможливо, щоб розподілена база даних одночасно забезпечувала узгодженість, доступність та толерантність до розділів.
CouchDB є AP типу системи (забезпечує доступність і стійкість Partition ).
Couchbase Server - це система типу CP (згідно Вікіпедії ) АБО система типу CA (відповідно до технічного оновлення Couchbase ) - ЩО з них ПРАВИЛЬНО? ВИМОГАЙТЕ КОМЕНТАР.
Це те, що я виявив список функцій CouchDB, які не підтримуються Couchbase Server:
Ці особливості CouchDB можуть чи не можуть бути для вас важливими, тому відсутність їх є недоліком чи ні, є суто суб'єктивним, але я вважаю, що рішення про перехід від CouchDB до Couchbase Server чи ні має базуватися на цих відмінностях і ваша залежність від цих особливостей у ваших поточних розгортаннях CouchDB.
Наприклад, якщо ви зацікавилися CouchDB після перегляду змін змін CouchDB в розмові про NodeCamp Mikeal Rogers або одного з чудових навчальних посібників CouchApp Дж. Кріса Андерсона, тоді ви повинні усвідомити, що якщо ви хочете перейти на Couchbase Server, то ви доведеться забути майже про все, про що вони говорили.
Через це я б сказав, що Couchbase Server виглядає як еволюція Memcached і Membase (а не еволюція CouchDB), і як такий він виглядає як чудовий продукт, якщо ви зараз використовуєте Memchached або Membase. Якщо ви використовуєте CouchDB найосновнішим способом, тоді ви можете розглянути можливість використання сервера Couchbase для одних і тих же речей, і це може, або може, не працювати краще (якщо ви не заперечуєте проти ліцензійних обмежень). Але якщо ви фактично використовуєте будь-які функції, унікальні в CouchDB (наприклад, канал змін, CouchApps, дворівнева архітектура, однорангова реплікація тощо), ви можете або забути про ці можливості, або залишитися з CouchDB. У будь-якому випадку переконайтеся, що читайте та розумієте підручник з переходу на Couchbase для користувачів CouchDB, перш ніж замислюватися про перемикання.
Люди часто отримують неправильне враження (можливо, читаючи речі на кшталт "Яке майбутнє CouchDB? Це Couchbase." ), Що CouchDB якимось чином застарів на сервері Couchbase або що це стара, застаріла версія Couchbase. Тим часом CouchDB - це активно підтримуваний проект з відкритим кодом, сервер Couchbase - це абсолютно окремий проект (це більш новий проект, але це не новіша версія CouchDB - вони навіть не сумісні) і оскільки навіть нові інструменти для створення CouchApps все ще зберігають розробляється (наприклад, див. проект Kanso ), тоді CouchDB не збирається нікуди скоро.
Я сподіваюся, що це прояснить плутанину. Будь ласка, виправте мене, якщо я тут ні на чому не помиляюся.
Couchbase Server - це фактично нове ім’я для сервера Membase (сервер Membase був перейменований на 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". Мені особисто подобається термін "Нереляційний".