Couchbase

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, Go и Python подготовлены специальные SDK.

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

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

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

Примечания

Ссылки 
 

NoSQL
Свободные СУБД
Программное обеспечение с лицензией Apache Software License