Couchbase Сервер - Couchbase Server

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

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

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

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

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

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

Архитектура

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

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

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

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

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

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

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

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

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

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

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

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

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

Спектакль

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

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

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

Couchbase поддерживает комплекты разработчиков программного обеспечения для языков программирования. .СЕТЬ, PHP, Рубин, Python, C, Node.js, Ява, Идти, и Scala.

N1QL

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

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

Пример

{  "электронное письмо": "[email protected]",  "друзья": [    {"имя": "рик"},    {"имя": "cate"}  ]}
Нравится запрос
ВЫБРАТЬ * ИЗ `ведро` КУДА электронное письмо ПОДОБНО "%@example.org";
Запрос массива
ВЫБРАТЬ * ИЗ `ведро` КУДА ЛЮБОЙ Икс В друзья УДОВЛЕТВОРЕНИЯ Икс.имя = "cate" КОНЕЦ;

Couchbase Mobile

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

Диван Lite (изначально TouchDB) предоставляет собственные библиотеки для автономных баз данных NoSQL со встроенными пиринговый или же клиент-сервер механизмы репликации.[14]Синхронизация шлюза управляет безопасным доступом и синхронизацией данных между Couchbase Lite и Couchbase Server.[15]

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

  • Браун, MC (22 июня 2012 г.). Начало работы с Couchbase Server (1-е изд.). O'Reilly Media. п. 88. ISBN  978-1449331061.
  • Островский, Давид; Хаджи, Мохаммед; Роденский, Янов (26 ноября 2015 г.), Pro Couchbase Server 2-е изд. (2-е изд.), Apress, п. 349, г. ISBN  978-1484211861
  • Потсангбам, Генри (23 ноября 2015 г.), Обучающая кушетка (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

Рекомендации

  1. ^ Дэмиен Кац (8 января 2013 г.). «Неоправданная эффективность C». Получено 30 сентября, 2016.
  2. ^ «Новые протоколы - memcached - клингонский - Memcached - хостинг проектов Google». 2011-08-22. Получено 2013-06-04.
  3. ^ Шашанк Тивари (31 августа 2011 г.). Профессиональный NoSQL. Джон Вили и сыновья. С. 15–16. ISBN  9781118167809.
  4. ^ «Баланс Oracle и открытого исходного кода в Orbitz». GigaOM. 21 сентября 2012 г.. Получено 19 сентября, 2016.
  5. ^ а б Эндрю Бруст (12 декабря 2012 г.). «Выпущен Couchbase 2.0; реализует хранилище документов JSON». ZDNet.
  6. ^ Деррик Харрис (29 июля 2011 г.). "Couchbase идет 2.0, подталкивает SQL для NoSQL". ГигаОм. Получено 19 сентября, 2016.
  7. ^ Тронд Норбай (15 марта 2010 г.). «Хотите знать, что делают ваши серверы memcached? Нажмите на них». Блог Couchbase.
  8. ^ Фрэнк Вайгель (30 октября 2012 г.). "Сравнительный анализ Couchbase". Диван. Получено 30 сентября, 2016.
  9. ^ «Cisco и Solarflare достигли значительного сокращения задержек для интерактивных веб-приложений с помощью Couchbase, базы данных NoSQL» (PDF). Cisco Systems. 18 июня 2012 г. Архивировано с оригинал (PDF) 13 августа 2012 г.. Получено 7 октября, 2016.
  10. ^ "Проекты Couchbase с открытым исходным кодом". Веб-сайт Couchbase. Получено 7 октября, 2016.
  11. ^ "Серверные редакции Couchbase". Диван.
  12. ^ Энди Слейтер (24 марта 2015 г.). «Шшш! Никому не говори, но Couchbase - серьезный соперник: Couchbase Live Europe 2015». Получено 13 февраля, 2018.
  13. ^ "Мобильная база данных Couchbase - альтернатива SQLite для Android и iOS". www.couchbase.com. Получено 11 мая 2020.
  14. ^ "Lite | Диван". www.couchbase.com. Получено 11 мая 2020.
  15. ^ "Sync Gateway | Couchbase". www.couchbase.com. Получено 11 мая 2020.

внешняя ссылка