Couchbase
Couchbase Server | |
---|---|
![]() | |
Тип | распределённая система управления данных в формате ключ-значение и документов |
Автор | Couchbase, Inc.[вд] |
Разработчики | Couchbase, Inc. |
Написана на | C++, Erlang, C [1], Go |
Операционная система | кроссплатформенное программное обеспечение |
Последняя версия | 6.5.1 (апрель 2020) |
Репозиторий | github.com/couchbase/man… |
Лицензия | Apache License (Community edition), владельческое (Enterprise edition) |
Сайт | couchbase.com |
![]() |
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 (от англ. N1NF QL; non-1st normal form query language; произносят сходно с nickel), поддерживающий операторы SELECT
(с группировками и ограниченными типами соединений), INSERT
, UPDATE
, DELETE
, UPSERT
(вставка или обновление при наличии записи с данным ключом, впоследствии был поддержан и более общий оператор — MERGE
).
Примечания
- ↑ Posted January 8, 2013 1:00 PM. The Unreasonable Effectiveness of C (неопр.). Damien Katz (8 января 2013). Дата обращения: 4 июня 2013. Архивировано 21 февраля 2013 года.
Ссылки
- couchbase.com — официальный сайт Couchbase