Кластеризация

Arenadata Grid обладает расширенными возможностями кластеризации, включая логические группы хранилищ и экземпляров приложений.

Узлы Arenadata Grid представляют собой серверные процессы Tarantool, выполняющие различные функции. Механизм кластеризации осуществляется с помощью фреймворка Cartridge.

Tarantool Cartridge рекомендуется в качестве альтернативы традиционному подходу разработки приложений для Tarantool.

В качестве набора средств разработки (SDK) Tarantool Cartridge предлагает утилиты и шаблоны, которые помогут:

  • С легкостью настроить среду разработки для приложений;
  • Подключить необходимые Lua-модули.

Полученный пакет можно установить и запустить на одном сервере или нескольких серверах в качестве одного экземпляра службы или как несколько служб, независимо или в кластере.

Для того чтобы полностью использовать возможности Tarantool-кластера, необходимо разрабатывать приложения исходя из того, что они должны работать в кластерной среде.

Кроме того, кластер в Tarantool предоставляет следующие ключевые преимущества для кластерных приложений:

  • Горизонтальная масштабируемость и балансировка нагрузки с помощью встроенного автоматического шардинга;
  • Асинхронная репликация;
  • Автоматическое восстановление после отказа;
  • Централизованное управление кластером через графический интерфейс или API;
  • Автоматическая синхронизация настроек;
  • Разделение функций экземпляров.

Кластер в Tarantool Cartridge может распределять функции экземпляров с помощью встроенных и пользовательских (настраиваемых) кластерных ролей. Во время работы кластера можно включить и отключить роли на лету. Это позволяет по-разному нагружать физические серверы с различным профилем оборудования (например, для ресурсоемких вычислений или для обработки большого количества транзакций).

Основные роли в кластере Cartridge:

  • Storage – экземпляр хранилища данных, который ответственен за собственно хранение и доступ к данным, хранящимся в памяти (движок memtx) и на локальных дисках (движок vinyl);
  • Router – экземпляр приложения в Tarantool. Все роли приложения наследуются от этой роли.

Вышеописанные экземпляры могут объединяться в логические группы vshard, обеспечивающие отказоустойчивость и балансировку нагрузки по принципу 1 master + n replicas. Горизонтальное масштабирование осуществляется автоматическим распределением данных между узлами vshard. Данные в таблицах разбиваются на небольшие блоки данных – бакеты. Распределение данных между vshard осуществляется путем вычисления из первичного индекса таблицы ключа шардирования. Данные с одним и тем же ключом шардирования помещаются в один и тот же vshard. Таким образом можно обеспечить локальность данных.

Параметр Weight позволяет настроить долю хранимых на конкретном vshard бакетов от общего числа бакетов в хранилище.

Экземпляр master в шарде позволяет писать и читать данные из таблицы, replica – только читать.

Important

Контактная информация службы поддержки – e-mail: info@arenadata.io