Riak KV

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 01:30, 22 января 2019.
Open book.svg Авторство
О. М. Захарова
Согласовано: 21.01.2019

Riak KV - это распределенная NoSQL база данных типа "ключ-значение", с расширенной локальной и мультикластерной репликацией, которая гарантирует чтение и запись даже в случае сбоев оборудования или сетевых разделов.

Riak KV
Riak-kv.png
Разработчики: Basho Technologies
Состояние разработки: Активно
Написана на: Erlang (язык программирования), C (язык программирования), JavaScript
Операционная система: Ubuntu, Mac OS X, FreeBSD, Debian, CentOS
Тип ПО: NoSQL
Лицензия: В открытом доступе/ Коммерческая
Веб-сайт Basho Riak KV

Особенности

Riak KV [Источник 1]. имеет быструю производительность, так как автоматизирует распределение данных по кластеру , а так же имеет довольно надежную непрерывность бизнеса с бесхарактерной архитектурой, которая обеспечивает высокую доступность, и масштабируется линейно с использованием аппаратного обеспечения.

Данные о сеансе используются приложением при взаимодействии с конечным пользователем и обычно передаются от клиента конечных пользователей (браузер, телефон, etc.) на сервер, где они хранятся, ожидая возвращения новых данных сеанса, содержащих изменения от пользователя. Эти данные о сеансе часто важны для обеспечения взаимодействия с пользователем, загрузки содержимого или программного обеспечения, а также для выполнения транзакций или покупки. Riak KV имеет уникальную архитектуру для обработки такого типа данных. Он предназначен, чтобы никогда не потерять запись и масштабировать по горизонтали, так что даже в пиковые дни все действия пользователей выполняются без проблем.

Интернет вещей ("The Internet of Things") и веб-приложения собирают и размещают огромное количество данных, часто генерируемых тысячами или даже миллионами устройств. Эти данные могут обновляться с интервалами в час, минуту, секунду или даже миллисекунду. Riak KV позволяет прикладной обработке этих данных генерировать полезные выводы и полезную информацию. Он предназначен для горизонтального масштабирования с помощью аппаратного обеспечения, что позволяет администраторам легко расширять репозиторий сбора данных без создания сложных сегментов.

Riak KV имеет инновационную архитектуру базы данных, которая обеспечивает быстрое чтение и запись для глобально распределенных данных.

Riak KV конструировано для masterless конфигурации. Это означает, что администраторы могут развертывать несколько кластеров Riak KV, а затем реплицировать их для синхронизации. Например, если запись получена кластером A, то кластер A гарантирует, что запись реплицируется в кластеры B-Z

Репликация нескольких кластеров (Репликация нескольких центров обработки данных)

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

  • Активная конфигурация кластера : Обеспечение локальности данных путем обслуживания клиентов с низкой задержкой от ближайшего центра обработки данных.
  • Зоны доступности : Эффективная мультикластерная репликация и избыточность данных в пределах географического региона (например, побережья или страны).
  • Вторичные кластеры аналитики : Репликация данных из первичного кластера (отвечающего за обслуживание всех производственных запросов) во вторичный кластер, в котором можно выполнять аналитические и другие вычисления.
  • Частные, общедоступные или гибридные облачные кластеры : Кластеры могут охватывать весь земной шар и поддерживать облачную реализацию. Репликация обеспечивает масштабируемость и доступность в облаке.

Преимущества Riak KV

Riak KV обладает следующими преимуществами:

  • Глобальная доступность : данные всегда доступны.
  • Масштабируемость : автоматическое распределение данных в кластере и простота добавления узлы означают линейное увеличение производительности по мере роста данных.
  • Простота эксплуатации : легко работать, легко добавлять ноды в кластер.
  • Отказоустойчивость : многоузловая архитектура гарантирует отсутствие потери данных в случае сетевых или аппаратных сбоев.
  • Быстрый доступ к данным: приложение работает быстро. Запросы данных обслуживаются быстро даже в час пик.
  • Гибкая модель данных: модель данных типа "ключ-значение" обеспечивает гибкость без предопределенной схемы работы.
  • Доступ к облаку: Riak KV первенствует в частных, общедоступных и гибридных облачных развертываниях.
  • Хранение больших объектов: через интеграцию с Riak S2 упрощается хранение больших объектов.
  • Упрощенная разработка: в наличии обширная документация и инструменты работает в считанные минуты, и мощные API просты в использовании.
  • Снижение затрат на использование продукта: стоимость реализации ниже, чем стоимость традиционных реляционных баз данных.

Поддержка пользователей 24/7

Техническая поддержка для Riak KV работает 24 часа в сутки все 7 дней в неделю, и время отклика на запрос составляет не более 1 часа.

Отличие Riak KV от Riak

  • Встроенные типы данных Riak KV основаны на CRDT (Conflict-free Replicated Data Types) и уменьшают сложность построения распределенных приложений. Riak KV автоматически применяет правила разрешения конфликтов для этих типов данных, упрощая разработку приложений.
  • Для обеспечения доступности записи Riak KV позволяет нескольким клиентам писать одновременно и потенциально по одному и тому же ключу. Для автоматического разрешения конфликтов и обеспечения точности данных Riak KV использует логическое, а не хронологическое время для отслеживания истории обновлений значений и обнаружения конфликтных записей. Dotted Version Vectors (DVVs)– это метаданные, привязанные к каждой реплике данных при ее создании. Они обновляются каждый раз, когда обновляется реплика данных, чтобы отслеживать версии данных.
  • Riak KV обладает мощными возможностями для поиска данных, что особенно полезно при использовании Big Data. Поиск осуществляется при помощи Riak Search и вторичных индексов. Riak Search интегрируется с Apache Solr, который позволяет осуществлять распределенный полнотекстовый поиск. Riak Search контролирует изменения данных в Riak KV и распространяет эти изменения на индексы, управляемые Apache Solr. Автоматическая синхронизация индексов обеспечивает высокую скорость запросов и полный набор результатов при подключении к одному из узлов. Riak KV обеспечивает равномерное распределение входящих данных по всем узлам кластера. Каждый узел кластера Riak KV также контролирует экземпляр Solr. На каждом узле Riak KV экземпляр Solr управляет индексами для этого узла.
  • Riak KV является кластерной системой, содержащей несколько узлов (серверы или облачные экземпляры). Интеллектуальная репликация является основной особенностью архитектуры Riak KV и позволяет сохранять данные на нескольких узлах одновременно с одним запросом на запись. Это гарантирует, что в случае отказа одного из узлов операции чтения и записи все равно будут доступны. Riak KV позволяет установить параметр N, известный также как n_val, который определяет количество узлов для репликации данных.

Установка

Есть несколько способов установки [Источник 2].

Установка из источника

Важное замечание: должен быть установлен Erlang (язык программирования) [Источник 3]. Riak KV требует Erlang версии не ниже R16B02+.

Если Erlang требуемой версии установлен, то далее нужно загрузить и распаковать исходный дистрибутив:

 
curl -O http://s3.amazonaws.com/downloads.basho.com/riak/2.2/2.2.3/riak-2.2.3.tar.gz
tar zxvf riak-2.2.3.tar.gz
cd riak-2.2.3
make rel
 

Важно! Erlang должен быть с той же архитектурой, что и система, на которую он устанавливается.

Из предварительно скомпилированных архивов

Для запуска RIak KV из предварительно скомпилированных архивов следует ввести в консоль следующие команды для соответствующей платформы:

curl -O http://s3.amazonaws.com/downloads.basho.com/riak/2.2/2.2.3/osx/10.8/riak-2.2.3-OSX-x86_64.tar.gz
tar xzvf riak-2.2.3-osx-x86_64.tar.gz

С помощью Homebrew

brew install --devrel riak

По умолчанию устанавливается в папку:

/usr/local/Cellar/riak

Пример использования Riak KV

В качестве примера настроим кластер из трех узлов, развернутых через контейнеры Docker.

Для начала, создадим файл docker-compose.yml:

tee docker-compose.yml <<-EOF
version: "2"
services:
  coordinator:
    image: basho/riak-kv
    ports:
      - "8087:8087"
      - "8098:8098"
    environment:
      - CLUSTER_NAME=riakkv
    labels:
      - "com.basho.riak.cluster.name=riakkv"
    volumes:
      - schemas:/etc/riak/schemas
  member:
    image: basho/riak-kv
    ports:
      - "8087"
      - "8098"
    labels:
      - "com.basho.riak.cluster.name=riakkv"
    links:
      - coordinator
    depends_on:
      - coordinator
    environment:
      - CLUSTER_NAME=riakkv
      - COORDINATOR_NODE=coordinator

volumes:
  schemas:
    external: false
EOF

Запускаем один узел:

docker-compose up -d coordinator

Проверим:

docker ps

Так же можно выполнить проверку через панель администратора по адресу localhost:8098/admin/.

Теперь запустим ещё 2 узла.

docker-compose scale member=2


Источники

  1. Riak KV // Официальный сайт Basho [2018-2018] Дата обновления: 26.11.2018. URL: http://basho.com/products/riak-kv/ (дата обращения: 01.10.2018)
  2. Установка Riak KV на различные операционные системы // Официальный сайт Basho [2018-2018] Дата обновления: 26.11.2018. URL: http://docs.basho.com/riak/kv/2.2.3/downloads/ (дата обращения: 05.10.2018)
  3. Установка Erlang на различные операционные системы // Официальный сайт Basho [2018-2018] Дата обновления: 26.11.2018. URL: http://docs.basho.com/riak/kv/2.2.3/setup/installing/source/erlang/ (дата обращения: 05.10.2018)