Сервер Couchbase - Couchbase Server

Сервер Couchbase
CouchbaseLogo.svg
Скриншот сервера Couchbase
Разработчики) Couchbase, Inc.
Первый выпуск Август 2010 г. ( 2010-08 )
Стабильный выпуск
7.0.2 / 15 октября 2021 г. ( 2021-10-15 )
Написано в C ++ , Erlang , C , Go , Java
Тип Многомодельная база данных , распределенная база данных ключ-значение , документно-ориентированная база данных , база данных JSON
Лицензия Лицензия Apache 2.0 , условно бесплатная
Веб-сайт couchbase .com
Couchbase на AWS Summit

Couchbase Server , первоначально известный как Membase , представляет собой многомодельный пакет программного обеспечения для документоориентированной базы данных NoSQL с открытым исходным кодом , распределенный ( архитектура без совместного использования ) и оптимизированный для интерактивных приложений. Эти приложения могут обслуживать множество одновременно работающих пользователей путем создания, хранения, извлечения, агрегирования, манипулирования и представления данных. Для поддержки такого рода потребностей приложений Couchbase Server разработан для обеспечения легко масштабируемого доступа к документам типа "ключ-значение" или JSON с низкой задержкой и высокой устойчивой пропускной способностью. Он предназначен для кластеризации от одной машины до очень крупномасштабных развертываний, охватывающих множество машин.

Couchbase Server обеспечил совместимость клиентского протокола с memcached , но добавил постоянство диска , репликацию данных , реконфигурацию живого кластера, ребалансировку и мультиарендность с разделением данных .

История продукта

Membase была разработана несколькими руководителями проекта memcached , которые основали компанию NorthScale, чтобы разработать хранилище значений ключей с простотой, скоростью и масштабируемостью memcached, но также с возможностями хранения, постоянства и запросов базы данных. Исходный исходный код мембраны был предоставлен NorthScale и со-спонсорами проекта Zynga и Naver Corporation (тогда известная как NHN) для нового проекта на сайтеmbase.org в июне 2010 года.

8 февраля 2011 года основатели проекта Membase и Membase, Inc. объявили о слиянии с CouchOne (компанией, в которой многие из основных игроков стоят за CouchDB ) с соответствующим слиянием проектов. Объединенная компания получила название Couchbase, Inc. В январе 2012 года Couchbase выпустила Couchbase Server 1.8. В сентябре 2012 года Orbitz заявила, что изменила некоторые из своих систем для использования Couchbase. В декабре 2012 года был выпущен Couchbase Server 2.0 (анонсированный в июле 2011 года), который включал новое хранилище документов JSON , индексацию и запросы, добавочный MapReduce и репликацию в центрах обработки данных .

Архитектура

Каждый узел Couchbase состоит из службы данных, службы индекса, службы запросов и компонента менеджера кластера. Начиная с версии 4.0, при необходимости три службы могут быть распределены для работы на отдельных узлах кластера. Выражаясь языком теоремы CAP Эрика Брюера , Couchbase обычно является системой типа CP, что означает, что она обеспечивает согласованность и устойчивость к разделам , или ее можно настроить как систему AP с несколькими кластерами.

Кластерный менеджер

Менеджер кластера контролирует конфигурацию и поведение всех серверов в кластере Couchbase. Он настраивает и контролирует поведение между узлами, такое как управление потоками репликации и операции перебалансировки. Он также предоставляет функции агрегирования показателей и консенсуса для кластера и интерфейс управления кластером RESTful . Менеджер кластера использует язык программирования Erlang и Open Telecom Platform .

Репликация и отказоустойчивость

Репликацией данных внутри узлов кластера можно управлять с помощью нескольких параметров. В декабре 2012 года была добавлена ​​поддержка репликации между разными дата-центрами .

Менеджер данных

Диспетчер данных хранит и извлекает документы в ответ на операции с данными из приложений. Он асинхронно записывает данные на диск после подтверждения клиенту. В версии 1.7 и новее приложения могут дополнительно гарантировать, что данные будут записаны более чем на один сервер или на диск, прежде чем подтверждать запись клиенту. Параметры определяют возраст элементов, который влияет на то, когда данные сохраняются, и как обрабатывается максимальный объем памяти и перенос из основной памяти на диск. Он поддерживает рабочие наборы, превышающие квоту памяти на «узел» или «сегмент». Внешние системы могут подписываться на потоки отфильтрованных данных, поддерживая, например, индексацию полнотекстового поиска , аналитику данных или архивирование.

Формат данных

Документ - это основная единица обработки данных в Couchbase Server. Документы хранятся в формате документа JSON без предопределенных схем. Документы не в формате JSON также могут храниться на сервере Couchbase (двоичные, сериализованные значения, XML и т. Д.).

Кэш, управляемый объектами

Couchbase Server включает в себя встроенный многопоточный объектно-управляемый кеш, который реализует API-интерфейсы, совместимые с memcached, такие как get, set, delete, append, prepend и т. Д.

Механизм хранения

Couchbase Server имеет конструкцию хранилища с добавлением хвоста, которое невосприимчиво к повреждению данных, убийствам OOM или внезапной потере питания. Данные записываются в файл данных в режиме «только добавление», что позволяет Couchbase выполнять в основном последовательную запись для обновления и обеспечивать оптимизированные шаблоны доступа для дискового ввода-вывода.

Представление

В тесте производительности, проведенном Altoros в 2012 году, Couchbase Server сравнивался с другими технологиями. Cisco Systems опубликовала тест, измеряющий задержку и пропускную способность Couchbase Server со смешанной рабочей нагрузкой в ​​2012 году.

Лицензирование и поддержка

Couchbase Server - это упакованная версия технологии программного обеспечения с открытым исходным кодом Couchbase, доступная в версии сообщества без последних исправлений ошибок с лицензией Apache 2.0 и редакцией для коммерческого использования. Сборки Couchbase Server доступны для операционных систем Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows и macOS.

Couchbase поддерживает наборы разработчиков программного обеспечения для языков программирования .NET , PHP , Ruby , Python , C , Node.js , Java , Go и Scala .

N1QL

Языка запросов называется не-первой нормальной формы языка запросов, N1QL (выраженный никель), используется для манипулирования данными JSON в Couchbase, так же , как SQL манипулирует данными в СУБД. Он имеет операторы SELECT, INSERT, UPDATE, DELETE, MERGE для работы с данными JSON. В марте 2015 года он был анонсирован как «SQL для документов».

Модель данных N1QL не является первой нормальной формой (N1NF) с поддержкой вложенных атрибутов и нормализации, ориентированной на предметную область . Модель данных N1QL также является надлежащим надмножеством и обобщением реляционной модели .

Пример

{
  "email": "testme@example.org",
  "friends": [
    {"name": "rick"},
    {"name": "cate"}
  ]
}
Нравится запрос
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
Запрос массива
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "cate" END;

Couchbase Mobile

Couchbase Mobile / Couchbase Lite - мобильная база данных, обеспечивающая репликацию данных.

Couchbase Lite (первоначально TouchDB) предоставляет собственные библиотеки для автономных баз данных NoSQL со встроенными механизмами одноранговой репликации или репликации клиент-сервер . Sync Gateway управляет безопасным доступом и синхронизацией данных между Couchbase Lite и Couchbase Server.

Библиография

  • Браун, MC (22 июня 2012 г.). Начало работы с Couchbase Server (1-е изд.). O'Reilly Media. п. 88. ISBN 978-1449331061.
  • Островский, Давид; Хаджи, Мохаммед; Роденский, Янив (26 ноября 2015 г.), Pro Couchbase Server 2-е изд. (2-е изд.), Апресс , с. 349, ISBN 978-1484211861
  • Потсангбам, Генри (23 ноября 2015 г.), Learning Couchbase (1-е изд.), Packt , стр. 202, ISBN 978-1785288593
  • Вохра, Дипак (3 августа 2015 г.), Pro Couchbase Development: платформа NoSQL для предприятия (1-е изд.), Apress , стр. 331, ISBN 978-1484214350
  • Сангуди, Джеральд; и другие. (20 октября 2017 г.), N1QL: Практическое руководство (2-е издание) (2-е изд.), Самостоятельное издание , стр. 423
  • Вемулапалли, Ситарам; и все. (10 мая 2018 г.), Руководство по функциям N1QL в Couchbase 5.5: Special Edition , Самостоятельно опубликовано, стр. 112
  • Чемберлин, Дон ; (19 октября 2018 г.) SQL ++ для пользователей SQL: Учебное пособие, Couchbase

использованная литература

внешние ссылки