Выпуск СУБД 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.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск СУБД Couchbase Server 4.0, сочетающей возможности CouchDB, memcached и Membase», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.