Couchbase Server, раніше відомий як Membase — система керування базами даних, що належить до класу NoSQL-систем і надає схожі на Apache CouchDB засоби для створення документ-орієнтованих баз даних у поєднанні з Membase-подібними сховищами в форматі ключ-значення. При цьому, завдяки підтримці стандартного протоколу memcached, система залишається сумісною з великим числом вже наявних програм і може виступати у ролі прозорої заміни інших NoSQL-систем. Початковий код системи поширюється під ліцензією Apache.

Couchbase Server
Couchbase Server
Тип розподілена система керування даних даних у форматі ключ-значення і документів
Автор Couchbase, Inc.d
Розробник Couchbase, Inc.
Стабільний випуск 6.5.1 (23 квітня 2020; 3 роки тому (2020-04-23))
Версії 1.7.1.1 (26 серпня 2011)[1]
Операційна система крос-платформовий
Мова програмування C++, Erlang, C[2]
Ліцензія Apache License (Community edition), власницька (Enterprise edition)
Репозиторій github.com/couchbase/manifest
Вебсайт www.couchbase.com

Проект створений об'єднаною командою розробників CouchDB і Membase, заснованої після злиття компанії CouchOne і Membase. Відкинувши деталі, Couchbase Server можна розглядати як бекенд сховища на основі технологій Membase, поверх якого додані рушії для індексації й формування запитів CouchDB. Таким чином вдалося домогтися сумісності з Apache CouchDB на рівні оформлення запитів та індексів, і сумісності з Membase на рівні протоколу доступу до даних і керуючого API. Критичні до продуктивності частини CouchDB були переписані на мові C++, але багато підсистеми як і раніше залишаються на мові Erlang. Для розробки застосунків на мовах Java, Ruby, .NET, C/C++, PHP, Node.js і Python підготовлені спеціальні SDK.

Couchbase Server відрізняється високою масштабованістю і дозволяє організувати зберігання даних як на одному сервері, так і у формі розподіленої системи, що розміщає дані поверх групи серверів. У тому числі є вбудовані засоби для забезпечення високої доступності, самовідновлення в разі збою обслуговуючих сховище вузлів (дані можуть дублюватися на різних вузлах) і побудови сегментованих сховищ, копії яких рознесені по різних датацентрах і наближені до кінцевих користувачів. Підтримуються як односпрямовані («master-slave»), так і двонаправлені («master-master») режими реплікації. Підтримується створення первинних і вторинних індексів, а також індексів по декількох ключах. Для додаткової оптимізації продуктивності застосовуються вбудовані механізми кешування в оперативній пам'яті і засоби автоматичної генерації індексів.

Крім можливості зберігання даних у форматі ключ/значення, Couchbase Server дозволяє використовувати концепцію документ-орієнтованого сховища, в якому одиницею зберігання даних виступає документ, який має унікальний ідентифікатор, версію і містить довільний набір іменованих полів в форматі ключ/значення. Використовувана в Couchbase Server модель даних дозволяє визначати документи в форматі JSON, знімаючи з розробника необхідність визначення схеми зберігання. Запити та індексація даних можуть виконуватися відповідно до парадигми MapReduce. Для організації псевдо-структурованого набору даних з довільних документів пропонується концепція формування уявлень (view). Для формування логіки вибірки використовується мова JavaScript.

Примітки ред.

  1. Release 1.7.1.1 — 2011.
  2. Posted January 8, 2013 1:00 PM (8 січня 2013). The Unreasonable Effectiveness of C. Damien Katz. Архів оригіналу за 21 лютого 2013. Процитовано 4 червня 2013.

Посилання ред.