The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск СУБД Couchbase Server 3.0, сочетающей возможности CouchDB, memcached и Membase

08.10.2014 15:08

После двух лет разработки представлена новая значительная ветка СУБД Couchbase Server 3.0. Couchbase Server относится к классу NoSQL-систем и предоставляет похожие на Apache CouchDB средства для создания документ-ориентированных баз данных в сочетании с напоминающими Membase хранилищами в формате ключ-значение. При этом, благодаря поддержке стандартного протокола memcached, система остаётся совместимой с большим числом уже имеющихся приложений и может выступать в роли прозрачной замены других NoSQL-систем. Код системы распространяется под лицензией 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. Для организации псевдо-структурированного набора данных из произвольных документов предлагается концепция формирования представлений (view). Для формирования логики выборки используется язык JavaScript.

Основные новшества:

  • Увеличение производительности и масштабируемости: до 50 раз возросла скорость индексации, до двух раз увеличилась скорость ребалансировки, до 8 раз сокращено время восстановления узла после сбоя.
  • Новый протокол DCP (Database Change Protocol) для обмена данными между узлами в процессе ребалансировки, репликации и восстановления, а также для организации работы охватывающих несколько узлов представлений. Ключевой особенностью нового протокола является использование оперативной памяти для обработки данных об изменениях, вместо их чтения с диска, что привело к заметному увеличению производительности практически во всех областях работы с БД, от репликации и индексирования до работы с представлениями;
  • Функция Dynamically Tunable Memory, позволяющая на лету выбирать оптимальные методы распределения памяти, оптимизации метаданных и стратегию кэширования (можно явно указать как много данных можно держать в памяти и на диске), что упрощает создание различных типов конфигурации - от размещаемых исключительно в памяти БД, до больших дисковых хранилищ;
  • Средства для автоматической настройки параметров и ресурсов с учётом возможностей текущего оборудования для сокращения задержек и увеличения пропускной способности ввода/вывода;
  • Концепция общего пула потоков (Shared thread pool) для каждого узла, позволяющая увеличить пропускную способность ввода/вывода и сократить задержки при выполнения чтения, записи и прочих операций;
  • Благодаря использованию нового протокола DCP, в новом выпуске реализована возможность репликаци между дата-центрами в режиме из памяти в память. Использование нового режима позволяет до 4 раз снизить задержки в процессе репликации. Кроме того, повышена эффективность обработки внештатных ситуаций, таких как прерывание сетевого соединения в процессе репликации - после восстановления соединения репликация автоматически будет продолжена с прерванной позиции.
  • Добавлена опция для выполнения инкрементального резервного копирования, которая дополнила собой ранее предлагаемый режим создания полного бэкапа. При инкрементальном режиме в резервную копию включаются только изменения относительно прошлого бэкапа, что позволяет заметно сэкономить дисковое пространство и сократить время выполнения операции, как следствие появляется возможность совершать бэкапы более часто;
  • Добавлен новый режим быстрого восстановления узла после сбоя, позволяющий до 8 раз сократить время на реактивацию узла;
  • Усиление безопасности: возможность шифрования канала связи между клиентом и сервером; поддержка доступа к REST API и консоли управления через HTTPS;
  • Упрощение средств для управления кластером и распределения ресурсов. Возможность приостановки и возобновления репликации между разными кластерами на время проведения технических работ. Поддержка режима "graceful failover" для мягкого выведения узлов из кластера по запросу администратора для проведения обслуживания. Поддержка инкрементальной актуализации данных при восстановлении ранее выведенного из работы узла. Средства диагностики на уровне всего кластера;
  • В инструментарий для разработчиков добавлена встроенная поддржка объектов JSON с автоматической сериализацией данных через Couchbase API, не требующая использования внешних JSON-библиотек. В Java и .NET SDK добавлена поддержка асинхронных интерфейсов. Обеспечена интеграция с фреймворками, такими как Spring, gEvent, Twisted и Ottoman.


  1. Главная ссылка к новости (http://www.couchbase.com/press...)
  2. OpenNews: Релиз БД Couchbase Server 2.0, сочетающей возможности CouchDB, memcached и Membase
  3. OpenNews: Основатель CouchDB покинул Apache в пользу развития системы Couchbase
  4. OpenNews: Основатель проекта Memcached представил новую NoSQL СУБД Membase
  5. OpenNews: Первый стабильный релиз СУБД Membase Server
  6. OpenNews: Выпуск документ-ориентированной БД Apache CouchDB 1.6.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40775-couchbase
Ключевые слова: couchbase
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 15:57, 08/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > до 50 раз возросла скорость индексации

    ох лол, радиус кривизны рук кодившего не вписывается в евклидово пространство.

     
     
  • 2.3, Аноним (-), 16:45, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Прячься, анонимные иксперты в треде!
     

  • 1.4, manster (ok), 16:57, 08/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Было бы интересно взглянуть независимое сравнение производительности с CouchDB.

    Конечно отлично, но непонятно зачем комбайн.

     
     
  • 2.5, агонии (?), 17:05, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Независимо сравнить ты сможешь только самостоятельно:)
     
     
  • 3.16, manster (ok), 18:52, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну можно конечно, только еще ebuild-ов нет для couchbase. Ставить оверлей или самому пилить лениво.
     

  • 1.7, corr256 (ok), 18:21, 08/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    убрали бы полностью зависимость от Erlang
     
     
  • 2.9, Xasd (ok), 02:18, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    то есть ты хочешь чтобы Erlang был бы вкомпилирован бы внутрь серверного пакета? :)
     
     
  • 3.11, Аноним (-), 04:44, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    очевидно, erlang вызывает у товарища отторжение.
     
  • 2.12, edwin3d (ok), 10:38, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Чем Вам так не угодил он ? Erlang хороший язык, ориентированный как раз на серверную разработку и производительность у него к слову очень достойная  
     
     
  • 3.13, Аноним (-), 13:48, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    После Паскаля и Бэйсика разорванный шаблон кровоточит :D
     
     
  • 4.14, Crazy Alex (ok), 16:58, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Шаблон там кровоточит после чего угодно, синтаксис там странный и местаи адски архаичный. Хотя возможности языка и особенно инфраструктура хороши
     
  • 4.15, Аноним (-), 17:17, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >После Паскаля и Бэйсика разорванный шаблон кровоточит :D

    Советую петросянам таки внимательно читать буквы в новости:
    "Критичные к производительности части CouchDB были переписаны на языке C++, но многие подсистемы по-прежнему остаются на языке Erlang."

    У них эрланговские тормоза кровоточили, и видимо в конец народ достало :)

     
  • 2.17, manster (ok), 18:53, 09/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > убрали бы полностью зависимость от Erlang

    убрать то можно, "только одна вода останется"

     

  • 1.10, Аноним (-), 04:38, 09/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати, может, кому-то пригодится: mcrouter, маршрутизатор запросов для распределённой системы кэшей memcached от Facebook, код открыт под лицензией BSD.
    https://code.facebook.com/posts/296442737213493/introducing-mcrouter-a-memcach
    Закидывал сюда новость, но модеры почему-то проигнорили.
     
  • 1.18, Subcreator (ok), 11:13, 26/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Версия 2.5.1 enterprise на 3-х серверах в продакшне 3-ий месяц, не нарадуюсь, обслуживать вообще не приходится, простейшее добавление/удаление нод нажатием кнопки в гуи или запросом к апи + час на ребалансировку, данных ~5 млн документов, на ~5 гигов.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру