Couchbase

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Couchbase Server
Couchbase Server Screenshot.png
Тип распределённая система управления данных в формате ключ-значение и документов
Автор
Разработчик Couchbase, Inc.
Написана на C++, Erlang, C [1], Go
Операционная система кроссплатформенное программное обеспечение
Последняя версия 6.0.2 (июнь 2019)
Лицензия Apache License (Community edition), владельческое (Enterprise edition)
Сайт couchbase.com
Commons-logo.svg Медиафайлы на Викискладе

Couchbase (Couchbase Server) — система управления базами данных класса NoSQL, предоставляет сходные с Apache CouchDB средства для создания документоориентированных баз данных в сочетании с Membase-подобными хранилищами в формате «ключ — значение». Благодаря поддержке стандартного протокола memcached, система остаётся совместимой с большим числом унаследованных приложений и может выступать в роли прозрачной замены ряда других NoSQL-систем. Исходный код системы распространяется под лицензией Apache.

Создана объединённой командой разработчиков CouchDB и Membase, созданной в результате слияния компаний CouchOne и Membase. В основе движка хранения используются технологии Membase, поверх которого добавлены инструменты для индексации и формирования запросов, заимствованные из CouchDB. Таким образом удалось добиться как совместимости с Apache CouchDB на уровне языка запросов и индексов, так и совместимости с Membase на уровне протокола доступа к данным и управляющего API. Критические части CouchDB были переписаны на языке C++, но многие подсистемы по-прежнему остаются на языке Erlang. Для разработки приложений на языке Java, Ruby, .NET, C/C++, PHP, Node.js и Python подготовлены специальные SDK.

Позволяет организовать хранение данных как на одном узле, так и в форме распределённой системы, которая размещает данные поверх группы серверов. Есть встроенные средства для обеспечения высокой доступности, самовосстановления в случае сбоя обслуживающих хранилище узлов (данные могут дублироваться на разных узлах) и построения сегментированных[en] хранилищ, копии которых разнесены по разным дата-центрам. Поддерживаются как однонаправленные («ведущий — ведомый»), так и двунаправленные («ведущий — ведущий») режимы репликации. Поддерживается создание первичных и вторичных индексов, а также индексов по нескольким ключам. Для дополнительной оптимизации производительности применяются встроенные механизмы кэширования в оперативной памяти и средства автоматической генерации индексов.

Кроме возможности хранения данных в формате «ключ — значение», Couchbase позволяет использовать концепцию документоориентированного хранилища, в котором в качестве единицы хранения данных выступает документ, который имеет уникальный идентификатор, версию и содержит произвольный набор именованных полей в формате «ключ — значение». Используемая модель данных позволяет определять документы в формате JSON, снимая с разработчика необходимость определения схемы хранения. Запросы и индексация данных могут выполняться в соответствии с парадигмой MapReduce. Для организации псевдоструктурированного набора данных из произвольных документов предлагается концепция формирования представлений (view).

Для формирования логики выборки используется язык JavaScript. Также для доступа к JSON-данным реализован специализированный SQL-подобный язык запросов N1QL (от англ. N1NF QL; non-1st normal form query language; произносят сходно с nickel), поддерживающий операторы SELECTгруппировками и ограниченными типами соединений), INSERT, UPDATE, DELETE, UPSERT (вставка или обновление при наличии записи с данным ключом, впоследствии был поддержан и более общий оператор — MERGE).

Примечания[править | править код]

  1. Posted January 8, 2013 1:00 PM. The Unreasonable Effectiveness of C. Damien Katz (8 января 2013). Дата обращения 4 июня 2013.

Ссылки[править | править код]