Выпуск СУБД Couchbase Server 4.0, сочетающей возможности CouchDB, memcached и Membase
8 октября 2015 года
После года разработки представлен релиз СУБД Couchbase Server 4.0, которая относится к классу NoSQL-систем и предоставляет похожие на Apache CouchDB средства для создания документ-ориентированных баз данных в сочетании с напоминающими Membase хранилищами в формате ключ-значение. При этом, благодаря поддержке стандартного протокола memcached, система остаётся совместимой с большим числом уже имеющихся приложений и может выступать в роли прозрачной замены других NoSQL-систем. Код системы распространяется (Архивная копия от 20 сентября 2014 на Wayback Machine) под лицензией 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, а также с использованием SQL-подобного языка запросов. Для организации псевдо-структурированного набора данных из произвольных документов предлагается концепция формирования представлений (view). Для формирования логики выборки используется язык JavaScript.
Основные новшества (Архивная копия от 19 июля 2016 на Wayback Machine):
- Представлен язык формирования запросов N1QL (Архивная копия от 9 октября 2016 на Wayback Machine), комбинирующий простоту SQL с гибкостью JSON. Доступны выражения SELECT, DELETE, INSERT, UPDATE, UPSERT, CREATE/DROP INDEX, агрегатные функции, слияния запросов (Join), подзапросы. При этом модель хранения и формат вывода определяются представлением JSON. Пример запроса:
SELECT name, brewery_id from 'beer-sample' WHERE brewery_id IS NOT MISSING LIMIT 2;
- Новый движок хранения ForestDB, использующий структуры B+Trie (в штатном движке Couchstore применяется B+tree) и поддерживающий собственный локальный кэш. Из достоинств ForestDB отмечается более эффективное хранение ключей большого размера и большого числа записией;
- Новый режим индексации данных с использованием вторичных GSI-индексов (Global Secondary Indexing) для N1QL-запросов. GSI-индексы подходят для использования в интерактивных приложениях, требующих минимального времени отклика;
- Поддержка связывания Couchbase Server с другими СУБД через драйверы ODBC/JDBC;
- Средства для манипуляции географическими координатами в запросах для приложений, учитывающих местоположение;
- Поддержка новых фреймворков и языков: LINQ, Spring, Go;
- Режим многомерного масштабирования (MDS, Multi-Dimensional Scaling (Архивная копия от 1 октября 2016 на Wayback Machine)) для равномерного распределения ресурсов в кластере в привязке и имеющейся нагрузке. При MDS ресурсы для запросов, индексов и хранения данных распределяются отдельно, в зависимости от реальной потребности;
- Встроенные средства идентификации (Архивная копия от 17 октября 2016 на Wayback Machine) через интеграцию с LDAP;
- Средства (Архивная копия от 10 декабря 2016 на Wayback Machine) аудита безопасности, позволяющие проконтролировать кто и когда выполнял административные действия с СУБД;
- Улучшенные (Архивная копия от 30 октября 2016 на Wayback Machine) средства репликации между датацентрами, например, доступны средства отфильтровывания только необходимых в данном регионе данных;
- Поддержка подключения к хранилищам Spark Core, Spark SQL, Spark Streaming, Kafka и Sqoop;
- Средства для быстрого развёртывания рабочих конфигураций в контейнерах Docker (Архивная копия от 27 октября 2016 на Wayback Machine) и облачных сервисах AWS, Azure, Joyent, Cisco и Verizon. Формирование пакетов для SUSE Enterprise Linux 11 и Oracle Linux 6.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.