Storage (st)

Описание

Универсальное хранилище сайта. Используется различными функциональными ролями как внутренний сервис.

Резервируется в режиме Active-Passive. Масштабируется разделением на группы по хеш-суммам ключей.

Table 1. Системные характеристики

Код

sts

Режим работы

Хранилище

Режим резервирования

Active-Passive

Типы сайтов

Все

Слой

Бизнес-логика

Размещение

Внутренний

Сохранение и восстановление состояния при перезагрузке

Да

Приложение

rostell_store

Собственное хранилище

ODB Mnesia

Ограничения

  • Присутствует в начальной конфигурации.

  • Должна присутствовать на каждом сайте.

  • При недоступности функциональной роли большинство сервисов не функционируют, в том числе невозможна загрузка системы.

Параметры

Table 2. Параметры
Имя Тип Умолчание Описание

name

str

required

Имя. Может состоять из латинских букв и цифр, должно начинаться с буквы.

roletype

str

required

Тип функциональной роли. Возможные значения: "st".

iface

str

required

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

group

int

required

Номер группы.
В рамках горизонтального масштабирования функциональная роль может быть разделена на несколько групп на сайте, в каждой из которых активен только один экземпляр, остальные зарезервированы.
Ответственность между группами разделяется по хеш-суммам ключей сохраняемых данных. Все функциональные роли одной группы должны иметь одинаковую ответственность.
Расчет хеш-сумм производится автоматически по внутреннему алгоритму с равномерно-случайным распределением.
Целое число от 1 до 9999999.

order

int

required

Порядок экземпляра функциональной роли в рамках группы.
Определяет в каком порядке будет происходить перетекание в режиме Active-Passive.

Пример конфигурации

Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.

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

Пример узла
{
  "st1": {
    "name": "store1",
    "roletype": "st",
    "iface": "eth0",

    "group": "4",
    "order": "1"
  }
}

См. также