Couchbase Server , первоначально известный как Membase , представляет собой многомодельный пакет программного обеспечения для документоориентированной базы данных NoSQL с открытым исходным кодом , распределенный ( архитектура без совместного использования ) и оптимизированный для интерактивных приложений. Эти приложения могут обслуживать множество одновременно работающих пользователей путем создания, хранения, извлечения, агрегирования, манипулирования и представления данных. Для поддержки такого рода потребностей приложений Couchbase Server разработан для обеспечения легко масштабируемого доступа к документам типа "ключ-значение" или JSON с низкой задержкой и высокой устойчивой пропускной способностью. Он предназначен для кластеризации от одной машины до очень крупномасштабных развертываний, охватывающих множество машин.
Разработчики) | Couchbase, Inc. |
---|---|
Первый выпуск | Август 2010 г. |
Стабильный выпуск | 6.6.1 / 1 декабря 2020 г. |
Написано в | C ++ , Erlang , C , [1] Go |
Тип | Многомодельная база данных , распределенная база данных ключ-значение , документно-ориентированная база данных |
Лицензия | Лицензия Apache 2.0 , условно бесплатная |
Веб-сайт | couchbase |
Couchbase сервер при условии совместимости протокола клиента с Memcached , [2] , но добавил диск сохранения , репликацию данных , живой кластер реконфигурацию, балансировку и Multitenancy с разбиением данных .
История продукта
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 года Orbitz заявила, что изменила некоторые из своих систем для использования Couchbase. [4] В декабре 2012 года был выпущен Couchbase Server 2.0 (анонсированный в июле 2011 года), который включал новое хранилище документов JSON , индексацию и запросы, добавочный MapReduce и репликацию в центрах обработки данных . [5] [6]
Архитектура
Каждый узел Couchbase состоит из службы данных, службы индекса, службы запросов и компонента менеджера кластера. Начиная с версии 4.0, при необходимости три службы могут быть распределены для работы на отдельных узлах кластера. Выражаясь языком теоремы CAP Эрика Брюера , Couchbase обычно является системой типа CP, что означает, что она обеспечивает согласованность и устойчивость к разделам , или ее можно настроить как систему AP с несколькими кластерами.
Кластерный менеджер
Менеджер кластера контролирует конфигурацию и поведение всех серверов в кластере Couchbase. Он настраивает и контролирует поведение между узлами, такое как управление потоками репликации и операции перебалансировки. Он также предоставляет функции агрегирования показателей и консенсуса для кластера и интерфейс управления кластером RESTful . Менеджер кластера использует язык программирования Erlang и Open Telecom Platform .
Репликация и отказоустойчивость
Репликацией данных внутри узлов кластера можно управлять с помощью нескольких параметров. В декабре 2012 года была добавлена поддержка репликации между разными дата-центрами . [5]
Менеджер данных
Диспетчер данных хранит и извлекает документы в ответ на операции с данными из приложений. Он асинхронно записывает данные на диск после подтверждения клиенту. В версии 1.7 и новее приложения могут дополнительно гарантировать, что данные будут записаны на несколько серверов или на диск, прежде чем подтверждать запись клиенту. Параметры определяют возраст элементов, который влияет на то, когда данные сохраняются, и как обрабатывается максимальный объем памяти и перенос из основной памяти на диск. Он поддерживает рабочие наборы, превышающие квоту памяти на «узел» или «сегмент». Внешние системы могут подписываться на потоки отфильтрованных данных, поддерживая, например, индексацию полнотекстового поиска , аналитику данных или архивирование. [7]
Формат данных
Документ - это основная единица обработки данных в Couchbase Server. Документы хранятся в формате документа JSON без предопределенных схем. Документы не в формате JSON также могут храниться на сервере Couchbase (двоичные, сериализованные значения, XML и т. Д.).
Кэш, управляемый объектами
Couchbase Server включает в себя встроенный многопоточный объектно-управляемый кеш, который реализует API-интерфейсы, совместимые с memcached, такие как get, set, delete, append, prepend и т. Д.
Механизм хранения
Couchbase Server имеет конструкцию хранилища с добавлением хвоста, которое невосприимчиво к повреждению данных, убийствам OOM или внезапной потере питания. Данные записываются в файл данных в режиме «только добавление», что позволяет Couchbase выполнять в основном последовательную запись для обновления и обеспечивать оптимизированные шаблоны доступа для дискового ввода-вывода.
Представление
В тесте производительности, проведенном Altoros в 2012 году, Couchbase Server сравнивался с другими технологиями. [8] Cisco Systems опубликовала тест, измеряющий задержку и пропускную способность Couchbase Server со смешанной рабочей нагрузкой в 2012 году. [9]
Лицензирование и поддержка
Couchbase Server - это упакованная версия технологии программного обеспечения с открытым исходным кодом Couchbase, доступная в версии сообщества без последних исправлений ошибок с лицензией Apache 2.0 [10] и редакцией для коммерческого использования. [11] Сборки 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 для документов». [12]
Модель данных N1QL не является первой нормальной формой (N1NF) с поддержкой вложенных атрибутов и нормализации, ориентированной на предметную область . Модель данных N1QL также является надлежащим надмножеством и обобщением реляционной модели .
Пример
{ "электронная почта" : "[email protected]" , "друзья" : [ { "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 - это набор продуктов для предоставления баз данных NoSQL и репликации данных для мобильных и встроенных устройств. [13]
Couchbase Lite (первоначально TouchDB) предоставляет собственные библиотеки для автономных баз данных NoSQL со встроенными механизмами одноранговой репликации или репликации клиент-сервер . [14] Sync Gateway управляет безопасным доступом и синхронизацией данных между 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-е изд.), Апресс , с. 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 года .
- ^ «Новые протоколы - memcached - клингонский - Memcached - хостинг проектов Google» . 2011-08-22 . Проверено 4 июня 2013 .
- ^ Шашанк Тивари (31 августа 2011 г.). Профессиональный NoSQL . Джон Вили и сыновья. С. 15–16. ISBN 9781118167809.
- ^ «Уравновешивание Oracle и открытого исходного кода в Orbitz» . ГигаОМ . 21 сентября 2012 . Проверено 19 сентября 2016 года .
- ^ а б Эндрю Бруст (12 декабря 2012 г.). «Выпущен Couchbase 2.0; реализует хранилище документов JSON» . ZDNet .
- ^ Деррик Харрис (29 июля 2011 г.). «Couchbase идет 2.0, подталкивает SQL к NoSQL» . ГигаОм . Проверено 19 сентября 2016 года .
- ^ Тронд Норбай (15 марта 2010 г.). «Хотите знать, что делают ваши серверы memcached? Коснитесь их» . Блог Couchbase .
- ^ Фрэнк Вайгель (30 октября 2012 г.). «Бенчмаркинг Couchbase» . Диван . Проверено 30 сентября 2016 года .
- ^ «Cisco и Solarflare достигли значительного сокращения задержки для интерактивных веб-приложений с помощью Couchbase, базы данных NoSQL» (PDF) . Cisco Systems . 18 июня 2012 года Архивировано из оригинального (PDF) 13 августа 2012 года . Проверено 7 октября, 2016 .
- ^ «Проекты Couchbase с открытым исходным кодом» . Веб-сайт Couchbase . Проверено 7 октября, 2016 .
- ^ "Couchbase Server Editions" . Диван.
- ^ Энди Слейтер (24 марта 2015 г.). «Шшш! Никому не говори, но Couchbase - серьезный соперник: Couchbase Live Europe 2015» . Проверено 13 февраля 2018 года .
- ^ «Мобильная база данных Couchbase - альтернатива SQLite для Android и iOS» . www.couchbase.com . Дата обращения 11 мая 2020 .
- ^ "Lite | Диван" . www.couchbase.com . Дата обращения 11 мая 2020 .
- ^ "Шлюз синхронизации | База" . www.couchbase.com . Дата обращения 11 мая 2020 .
Внешние ссылки
- Официальный веб-сайт