Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Couchbase на AWS Summit

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

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

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт