Couchbase Server
Тип | розподілена система керування даних даних у форматі ключ-значення і документів |
---|---|
Автор | Couchbase, Inc.d |
Розробник | Couchbase, Inc. |
Стабільний випуск | 6.5.1 (23 квітня 2020 ) |
Версії | 1.7.1.1 (26 серпня 2011)[1] |
Операційна система | крос-платформовий |
Мова програмування | C++, Erlang, C[2] |
Ліцензія | Apache License (Community edition), власницька (Enterprise edition) |
Репозиторій | github.com/couchbase/manifest |
Вебсайт | www.couchbase.com |
Couchbase Server, раніше відомий як Membase — система керування базами даних, що належить до класу NoSQL-систем і надає схожі на Apache CouchDB засоби для створення документ-орієнтованих баз даних у поєднанні з Membase-подібними сховищами в форматі ключ-значення. При цьому, завдяки підтримці стандартного протоколу memcached, система залишається сумісною з великим числом вже наявних програм і може виступати у ролі прозорої заміни інших NoSQL-систем. Початковий код системи поширюється під ліцензією Apache.
Проект створений об'єднаною командою розробників 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.
- ↑ Release 1.7.1.1 — 2011.
- ↑ Posted January 8, 2013 1:00 PM (8 січня 2013). The Unreasonable Effectiveness of C. Damien Katz. Архів оригіналу за 21 лютого 2013. Процитовано 4 червня 2013.