Сервер Couchbase
![]() | |
![]() | |
Разработчик(и) | Коучбейс, Инк. |
---|---|
Первоначальный выпуск | август 2010 г. |
Стабильная версия | 7.6.2
/ 19 июля 2024 г. |
Репозиторий | |
Написано в | С++ , Эрланг , С , [ 1 ] Иди , Ява |
Тип | Многомодельная база данных , распределенная база данных «ключ-значение» , документо-ориентированная база данных , база данных JSON |
Лицензия | БСЛ 1.1, [ 2 ] фримиум |
Веб-сайт | www |

Couchbase Server , первоначально известный как Membase , представляет собой доступный исходный код , [ 2 ] распределенный ( архитектура без разделяемого доступа ) многомодельный программный пакет NoSQL, ориентированный на документацию базы данных, оптимизированный для интерактивных приложений. Эти приложения могут обслуживать множество одновременных пользователей , создавая, храня, извлекая, агрегируя, манипулируя и представляя данные. Для поддержки такого рода потребностей приложений Couchbase Server предназначен для обеспечения простого в масштабировании доступа к ключам или документам JSON с низкой задержкой и высокой устойчивой пропускной способностью. Он предназначен для кластеризации от одной машины до очень крупномасштабных развертываний, охватывающих множество машин.
Couchbase Server обеспечил совместимость клиентского протокола с memcached , [ 3 ] но добавлено сохранение диска , репликация данных , реконфигурация живого кластера, ребалансировка и мультитенантность с секционированием данных .
История продукта
[ редактировать ]Membase была разработана несколькими лидерами проекта memcached , которые основали компанию NorthScale для разработки хранилища ключей-значений , обладающего простотой, скоростью и масштабируемостью memcached, а также возможностями хранения, устойчивости и выполнения запросов, присущими базе данных. Исходный код membase был предоставлен NorthScale и со-спонсорами проекта Zynga и Naver Corporation (тогда известной как NHN) для нового проекта на membase.org в июне 2010 года. [ 4 ]
8 февраля 2011 года основатели проекта Membase и Membase, Inc. объявили о слиянии с CouchOne (компанией, в которой многие из основных игроков стоят за CouchDB ) с соответствующим слиянием проектов. Объединенная компания получила название Couchbase, Inc. В январе 2012 года Couchbase выпустила Couchbase Server 1.8. В сентябре 2012 года Orbitz заявила, что изменила некоторые из своих систем для использования Couchbase. [ 5 ] В декабре 2012 года был выпущен Couchbase Server 2.0 (анонсированный в июле 2011 года), который включал новое хранилище документов JSON , индексацию и запросы, инкрементальный MapReduce и репликацию между центрами обработки данных . [ 6 ] [ 7 ]
Архитектура
[ редактировать ]Каждый узел Couchbase состоит из службы данных, службы индексирования, службы запросов и компонента менеджера кластера. Начиная с версии 4.0, при необходимости три службы можно распределить для запуска на отдельных узлах кластера. Говоря языком теоремы CAP Эрика Брюэра , Couchbase обычно представляет собой систему типа CP, что означает, что она обеспечивает согласованность и устойчивость к разделению , или ее можно настроить как систему AP с несколькими кластерами.
Менеджер кластера
[ редактировать ]Менеджер кластера контролирует конфигурацию и поведение всех серверов в кластере Couchbase. Он настраивает и контролирует поведение между узлами, например управление потоками репликации и операции повторной балансировки. Он также предоставляет функции агрегирования метрик и консенсуса для кластера, а также интерфейс управления кластером RESTful . Менеджер кластера использует язык программирования Erlang и Open Telecom Platform .
Репликация и отказоустойчивость
[ редактировать ]Репликацией данных внутри узлов кластера можно управлять с помощью нескольких параметров. В декабре 2012 года была добавлена поддержка репликации между разными дата-центрами . [ 6 ]
Менеджер данных
[ редактировать ]Диспетчер данных сохраняет и извлекает документы в ответ на операции с данными из приложений. Он асинхронно записывает данные на диск после подтверждения клиенту. В версии 1.7 и более поздних приложения могут дополнительно гарантировать запись данных на несколько серверов или на диск, прежде чем подтверждать запись клиенту. Параметры определяют возраст элементов, который влияет на то, когда данные сохраняются, а также на то, как обрабатывается максимальный объем памяти и миграция из основной памяти на диск. Он поддерживает рабочие наборы, превышающие квоту памяти на «узел» или «корзину». Внешние системы могут подписываться на отфильтрованные потоки данных, поддерживая, например, полнотекстового поиска индексирование , анализ данных или архивирование. [ 8 ]
Формат данных
[ редактировать ]Документ — это основная единица манипулирования данными на Couchbase Server. Документы хранятся в формате JSON без предопределенных схем. Документы, отличные от JSON, также могут храниться на сервере Couchbase (двоичные, сериализованные значения, XML и т. д.).
Кэш, управляемый объектами
[ редактировать ]Couchbase Server включает в себя встроенный многопоточный объектно-управляемый кеш , который реализует API-интерфейсы, совместимые с memcached, такие как получение, установка, удаление, добавление, добавление в начало и т. д.
Механизм хранения
[ редактировать ]Couchbase Server имеет конструкцию хранилища с хвостовым добавлением, которая невосприимчива к повреждению данных, убийцам OOM или внезапному отключению питания. Данные записываются в файл данных только для добавления, что позволяет Couchbase выполнять в основном последовательную запись для обновления и предоставлять оптимизированные шаблоны доступа для дискового ввода-вывода.
Производительность
[ редактировать ]Тест производительности, проведенный Altoros в 2012 году, сравнивал Couchbase Server с другими технологиями. [ 9 ] В 2012 году Cisco Systems опубликовала тест, измеряющий задержку и пропускную способность сервера Couchbase со смешанной рабочей нагрузкой. [ 10 ]
Лицензирование и поддержка
[ редактировать ]Couchbase Server — это упакованная версия технологии программного обеспечения Couchbase с открытым исходным кодом , доступная в версии для сообщества без недавних исправлений ошибок с лицензией Apache 2.0. [ 11 ] и издание для коммерческого использования. [ 12 ] Сборки Couchbase Server доступны для Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows операционных систем и macOS.
Couchbase поддерживает наборы разработчиков программного обеспечения для языков программирования .NET , PHP , Ruby , Python , C , Node.js , Java , Go и Scala .
SQL++
[ редактировать ]Язык запросов под названием SQL++ (ранее называвшийся N1QL) используется для управления данными JSON в Couchbase точно так же, как SQL манипулирует данными в СУБД. Он имеет операторы SELECT, INSERT, UPDATE, DELETE, MERGE для работы с данными JSON. Первоначально он был анонсирован в марте 2015 года как «SQL для документов». [ 13 ]
SQL++ Модель данных представляет собой непервую нормальную форму (N1NF) с поддержкой вложенных атрибутов и доменно-ориентированной нормализации . Модель данных SQL++ также является надлежащим расширением и обобщением реляционной модели .
Пример
[ редактировать ]{
"email": "[email protected]",
"friends": [
{ "name": "Pavan" },
{ "name": "Ravi" }
]
}
- Нравится запрос
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
- Запрос массива
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "Pavan" END;
Couchbase Mobile
[ редактировать ]Couchbase Mobile/Couchbase Lite — это мобильная база данных , обеспечивающая репликацию данных. [ 14 ]
Couchbase Lite (первоначально TouchDB) предоставляет собственные библиотеки для автономных баз данных NoSQL со встроенными механизмами одноранговой или клиент-серверной репликации. [ 15 ] Sync Gateway управляет безопасным доступом и синхронизацией данных между Couchbase Lite и Couchbase Server. [ 16 ]
Использование
[ редактировать ]Couchbase зародился как эволюция Memcached , высокоскоростного кэша данных, и может использоваться в качестве замены Memcached, обеспечивая высокую доступность приложения memcached без изменений кода. [ 17 ]
Couchbase используется для поддержки приложений, где требуются гибкая модель данных, легкая масштабируемость и стабильно высокая производительность, например отслеживание активности пользователей в реальном времени или предоставление хранилища пользовательских настроек или онлайн-приложений. [ 18 ]
Couchbase Mobile, который хранит данные локально на устройствах (обычно мобильных устройствах), используется для создания «автономных» приложений, которые могут работать, когда устройство не подключено к сети, и синхронизироваться с Couchbase Server после восстановления сетевого подключения. [ 19 ]
Лаборатория Catalyst в Северо-Западном университете использует Couchbase Mobile для поддержки приложения Evo, программы исследований здорового образа жизни, где данные используются, чтобы помочь участникам улучшить качество питания, физическую активность, стресс или сон. [ 20 ]
Amadeus использует Couchbase с Apache Kafka для поддержки своей «открытой, простой и гибкой» стратегии по использованию и интеграции данных о программах лояльности для авиакомпаний и других туристических партнеров. Высокая масштабируемость необходима, когда разрушительные туристические события создают необходимость распознавать и компенсировать дорогостоящие клиенты. [ 21 ]
Начиная с 2012 года, он играл роль в серверное системах кэширования LinkedIn, включая кэширование для продуктов для рекрутеров и вакансий, счетчики для механизмов защиты безопасности и для внутренних приложений. [ 22 ]
Альтернативы
[ редактировать ]За кеширование Couchbase конкурирует с Memcached и Redis . Что касается баз данных документов, Couchbase конкурирует с другими системами баз данных, ориентированными на документы . Его обычно сравнивают с MongoDB , Amazon DynamoDB , Oracle RDBMS , DataStax , Google Bigtable , MariaDB , IBM Cloudant , Redis Enterprise , SingleStore и MarkLogic . [ 23 ] [ 24 ]
Библиография
[ редактировать ]- Браун, MC (22 июня 2012 г.). Начало работы с Couchbase Server (1-е изд.). О'Рейли Медиа. п. 88. ИСБН 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
Ссылки
[ редактировать ]- ^ Дэмиен Кац (8 января 2013 г.). «Необоснованная эффективность C» . Проверено 30 сентября 2016 г.
- ^ Перейти обратно: а б «Couchbase принимает лицензию BSL» . Блог Couchbase . 26 марта 2021 г.
- ^ «Новые протоколы — memcached — клингонский — Memcached — хостинг проектов Google» . 22 августа 2011 г. Проверено 4 июня 2013 г.
- ^ Шашанк Тивари (31 августа 2011 г.). Профессиональный NoSQL . Джон Уайли и сыновья. стр. 15–16. ISBN 9781118167809 .
- ^ «Балансирование Oracle и открытого исходного кода в Orbitz» . ГигаОМ . 21 сентября 2012 года . Проверено 19 сентября 2016 г.
- ^ Перейти обратно: а б Эндрю Браст (12 декабря 2012 г.). «Выпущена версия Couchbase 2.0; реализовано хранилище документов JSON» . ЗДНет .
- ^ Деррик Харрис (29 июля 2011 г.). «Couchbase переходит на версию 2.0, предлагая SQL вместо NoSQL» . ГигаОм . Архивировано из оригинала 2 октября 2016 года . Проверено 19 сентября 2016 г.
- ^ Тронд Норбай (15 марта 2010 г.). «Хотите знать, что делают ваши серверы memcached? Коснитесь их» . Блог Couchbase .
- ^ Фрэнк Вайгель (30 октября 2012 г.). «Сравнительный анализ Couchbase» . Коучбейс . Проверено 30 сентября 2016 г.
- ^ «Cisco и Solarflare добились значительного сокращения задержек для интерактивных веб-приложений с помощью Couchbase, базы данных NoSQL» (PDF) . Сиско Системы . 18 июня 2012 г. Архивировано из оригинала (PDF) 13 августа 2012 г. . Проверено 7 октября 2016 г.
- ^ «Проекты Couchbase с открытым исходным кодом» . Веб-сайт Couchbase . Проверено 7 октября 2016 г.
- ^ «Серверные версии Couchbase» . Коучбейс. Архивировано из оригинала 27 декабря 2012 г. Проверено 7 декабря 2012 г.
- ^ Энди Слейтер (24 марта 2015 г.). «Тсссс! Не говорите никому, но Couchbase — серьезный соперник: Couchbase Live Europe 2015» . Проверено 13 февраля 2018 г.
- ^ «DB-Engines: Couchbase, включая мобильные устройства» . DB-двигатели . Архивировано из оригинала 29 июля 2013 г. Проверено 29 июня 2021 г.
- ^ «Lite | Couchbase» . www.couchbase.com . Проверено 11 мая 2020 г.
- ^ «Синхронизировать шлюз Couchbase» . DB-двигатели . Архивировано из оригинала 29 июля 2013 г. Проверено 29 июня 2021 г.
- ^ Жакье, Янник (27 сентября 2016 г.). «Сервер Couchbase как кластер Memcached (часть 2)» . Мир ИТ . Проверено 9 февраля 2022 г.
- ^ «Введение в Couchbase — база данных документов NoSQL» . Журнал «Сегодня программное обеспечение» . Проверено 9 февраля 2022 г.
- ^ «Коучбейс Мобайл» . Сообщество разработчиков . 6 февраля 2022 г. Проверено 9 февраля 2022 г.
- ^ «Как Catalyst Lab компании Northwestern масштабирует программу здорового поведения с помощью Couchbase» . ВенчурБит . 31 декабря 2021 г. Проверено 9 февраля 2022 г.
- ^ «Amadeus Loyalty получает награду сообщества Couchbase в категории облачных вычислений» . Группа компаний Амадеус ИТ . 20 января 2022 г.
- ^ Майкл Кехо (6 декабря 2017 г.). «Экосистема Couchbase в LinkedIn» . Engineering.linkedin.com . Проверено 9 февраля 2022 г.
- ^ Инк, Гартнер. «Основные конкуренты и альтернативы Couchbase — Gartner 2022 — Облачные системы управления базами данных» . Гартнер . Проверено 9 февраля 2022 г.
{{cite web}}
:|last=
имеет общее имя ( справка ) - ^ «MongoDB для Couchbase: введение для разработчиков и экспертов — база данных DZone» . dzone.com . Проверено 9 февраля 2022 г.
Внешние ссылки
[ редактировать ]- Распределенная вычислительная архитектура
- NoSQL
- Кроссплатформенное программное обеспечение
- Структурированное хранилище
- Клиент-серверные системы управления базами данных
- Программное обеспечение для работы с базами данных для Linux
- Приложения распределенных вычислений
- Базы данных
- Управление данными
- Распределенные хранилища данных
- Документоориентированные базы данных
- Программное обеспечение, использующее лицензию Business Source