Сервер Couchbase

редактировать
База данных NoSQL с открытым исходным кодом
Couchbase Server
CouchbaseLogo.svg
Скриншот сервера Couchbase
Разработчик (и) Couchbase, Inc.
Первоначальный выпускАвгуст 2010 г. (2010-08)
Стабильный выпуск 6.6.0 / август 12, 2020 (2020-08-12)
Написано наC ++, Erlang, C,Go
Тип Многомодельная база данных, распределенная база данных типа "ключ-значение", документно-ориентированная база данных
Лицензия Apache License 2.0, freemium
Веб-сайтcouchbase.com
Couchbase на AWS Summit

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

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

Содержание
  • 1 История продукта
  • 2 Архитектура
    • 2.1 Диспетчер кластеров
      • 2.1.1 Репликация и переключение при отказе
    • 2.2 Диспетчер данных
      • 2.2.1 Формат данных
      • 2.2.2 Кэш, управляемый объектом
      • 2.2.3 Механизм хранения
    • 2.3 Производительность
  • 3 Лицензирование и поддержка
  • 4 N1QL
    • 4.1 Пример
  • 5 Couchbase Mobile
  • 6 Библиография
  • 7 Ссылки
  • 8 Внешние ссылки
История продукта

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 включает в себя встроенный многопоточный объект- управляемый кеш, который реализует API-интерфейсы, совместимые с memcached, такие как получение, установка, удаление, добавление, добавление и т. д.

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

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

Производительность

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

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

Couchbase Server - это пакетная версия технологии программного обеспечения с открытым исходным кодом Couchbase, доступная в виде Community Edition без последних исправлений ошибок с лицензией 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

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

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

Пример

{"email": "[email#160;protected] ", "friends": [{"name": "rick "}, {" name ":" cate "}]}
Подобно запросу
SELECT * FROM` bucket` WHERE email LIKE "%@example.org";
Запрос массива
SELECT * FROM `bucket` ГДЕ ЛЮБОЙ x В друзьях УДОВЛЕТВОРЕНИЕ x.name =" cate "END;
Couchbase Mobile

Couchbase Mobile - это набор продуктов для обеспечения баз данных NoSQL и репликации данных для мобильных и встроенных устройств.

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

Библиография
  • Brown, 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: платформа NoSQL для предприятия (1-е изд.), Apress, стр. 331, ISBN 978-1484214350
  • Сангуди, Джеральд; и другие. (20 октября 2017 г.), N1QL: Практическое руководство (2-е издание) (2-е изд.), Самостоятельное издание, стр. 423
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-15 13:56:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте