stringtranslate.com

Сервер Couchbase

Couchbase на саммите AWS

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 .

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

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

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

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

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

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

Объектно-управляемый кэш

Couchbase Server включает в себя встроенный многопоточный объектно-управляемый кэш , который реализует API, совместимые с Memcached, такие как получение, установка, удаление, добавление, добавление в начало и т. д.

Двигатель хранения

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

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

Тест производительности, проведенный Altoros в 2012 году, сравнил Couchbase Server с другими технологиями. [9] Cisco Systems опубликовала тест, в котором измерялись задержка и пропускная способность Couchbase Server при смешанной рабочей нагрузке в 2012 году. [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 манипулирует данными в RDBMS. Он имеет операторы SELECT, INSERT, UPDATE, DELETE, MERGE для работы с данными JSON. Первоначально он был анонсирован в марте 2015 года как «SQL для документов». [13]

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

Пример

{ "email" : "[email protected]" , "friends" : [ { "name" : "Паван" }, { "name" : "Рави" } ] }             
Нравится запрос
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
Запрос массива
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "Pavan" END;

Мобильная кушетка

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 Lab в Северо-Западном университете использует 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]

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

Ссылки

  1. ^ Дэмиен Кац (8 января 2013 г.). «Необоснованная эффективность C» . Получено 30 сентября 2016 г.
  2. ^ ab "Couchbase принимает лицензию BSL". Блог Couchbase . 26 марта 2021 г.
  3. ^ "NewProtocols - memcached - Klingon - Memcached - Google Project Hosting". 2011-08-22 . Получено 2013-06-04 .
  4. ^ Шашанк Тивари (31 августа 2011 г.). Professional NoSQL . John Wiley & Sons. стр. 15–16. ISBN 9781118167809.
  5. ^ "Balancing Oracle and open source at Orbitz". GigaOM . 21 сентября 2012 г. Получено 19 сентября 2016 г.
  6. ^ Эндрю Браст (12 декабря 2012 г.). «Couchbase 2.0 выпущен; реализует хранилище документов JSON». ZDNet .
  7. Деррик Харрис (29 июля 2011 г.). «Couchbase переходит на версию 2.0, продвигает SQL для NoSQL». GigaOm . Архивировано из оригинала 2 октября 2016 г. Получено 19 сентября 2016 г.
  8. ^ Trond Norbye (15 марта 2010 г.). «Хотите узнать, что делают ваши серверы memcached? Нажмите на них». Блог Couchbase .
  9. ^ Фрэнк Вайгель (30 октября 2012 г.). "Benchmarking Couchbase". Couchbase . Получено 30 сентября 2016 г. .
  10. ^ "Cisco и Solarflare добились радикального сокращения задержек для интерактивных веб-приложений с помощью Couchbase, базы данных NoSQL" (PDF) . Cisco Systems . 18 июня 2012 г. Архивировано из исходного (PDF) 13 августа 2012 г. . Получено 7 октября 2016 г. .
  11. ^ "Couchbase Open Source Projects". Веб-сайт Couchbase . Получено 7 октября 2016 г.
  12. ^ "Couchbase Server Editions". Couchbase. Архивировано из оригинала 2012-12-27 . Получено 2012-12-07 .
  13. Энди Слейтер (24 марта 2015 г.). «Тссс! никому не говорите, но Couchbase — серьезный претендент: Couchbase Live Europe 2015» . Получено 13 февраля 2018 г.
  14. ^ "DB-Engines: Couchbase including Mobile". DB-Engines . Архивировано из оригинала 2013-07-29 . Получено 29 июня 2021 .
  15. ^ "Lite | Couchbase". www.couchbase.com . Получено 11 мая 2020 г. .
  16. ^ "Sync Gateway Couchbase". DB-Engines . Архивировано из оригинала 2013-07-29 . Получено 29 июня 2021 г.
  17. ^ Jaquier, Yannick (27.09.2016). "Сервер Couchbase как кластер Memcached (часть 2)". IT World . Получено 09.02.2022 .
  18. ^ "Введение в Couchbase - NoSQL Document Database". Today Software Magazine . Получено 2022-02-09 .
  19. ^ "Couchbase Mobile". Сообщество DEV . 6 февраля 2022 г. Получено 09.02.2022 .
  20. ^ «Как лаборатория Catalyst Lab Северо-Запада масштабирует программу здорового поведения с помощью Couchbase». VentureBeat . 2021-12-31 . Получено 2022-02-09 .
  21. ^ "Amadeus Loyalty выигрывает премию Couchbase Community Award в категории «Облачные вычисления». Amadeus IT Group . 20 января 2022 г.
  22. ^ Майкл Кехо (6 декабря 2017 г.). «Экосистема Couchbase в LinkedIn». engineering.linkedin.com . Получено 2022-02-09 .
  23. ^ Inc, Gartner. "Лучшие конкуренты и альтернативы Couchbase - Gartner 2022 - Системы управления облачными базами данных". Gartner . Получено 2022-02-09 . {{cite web}}: |last=имеет общее название ( помощь )
  24. ^ "MongoDB to Couchbase: Введение для разработчиков и экспертов - База данных DZone". dzone.com . Получено 2022-02-09 .

Внешние ссылки