Interested Article - Couchbase

Couchbase ( Couchbase Server ) — система управления базами данных класса NoSQL , предоставляет сходные с Apache CouchDB средства для создания документоориентированных баз данных в сочетании с -подобными хранилищами в формате « ключ — значение ». Благодаря поддержке стандартного протокола 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 (от англ. N1NF QL; non-1st normal form query language ; произносят сходно с nickel ), поддерживающий операторы SELECT группировками и ограниченными типами соединений ), INSERT , UPDATE , DELETE , (вставка или обновление при наличии записи с данным ключом, впоследствии был поддержан и более общий оператор — MERGE ).

Примечания

  1. Posted January 8, 2013 1:00 PM. . Damien Katz (8 января 2013). Дата обращения: 4 июня 2013. 21 февраля 2013 года.

Ссылки

  • — официальный сайт Couchbase
Источник —

Same as Couchbase