Creatio development guide
PDF
Это документация Creatio версии 7.15.0. Мы рекомендуем использовать новую версию документации.

Хранилища данных. Типы и особенности использования

Glossary Item Box

Общие положения

Хранение бизнес-данных в Creatio реализовано в виде реляционной базы данных (MS SQL, Oracle или PostgreSQL). Эти данные используются при решении различных пользовательских задач, выполнении бизнес-процессов и т. п. Помимо этого, приложение Creatio обеспечивает:

  1. Хранение данных пользователя и приложения (профиль пользователя, сессионные данные и т. п.).
  2. Обмен данными между узлами веб-фермы.
  3. Промежуточное хранение информации в момент перезапуска приложения или узла веб-фермы.
  4. Выполнение промежуточных действий с данными перед помещением их в хранилище.

Для решения таких задач в архитектуре Creatio реализована технология хранилищ данных. В основе технологии — объектная модель классов, которая представляет собой унифицированный API для доступа из приложения к данным, расположенным во внешнем хранилище (на текущий момент в Creatio в качестве такого внешнего хранилища используется Redis).

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

Redis как сервер хранилищ Creatio

Сервером хранилищ Creatio в настоящее время является Redis — высокопроизводительное нереляционное хранилище данных.

Модель данных Redis основана на принципе пар "ключ-значение". Redis поддерживает доступ только по уникальному ключу, а в качестве хранимого значения могут выступать сложные структуры с дополнительными операциями. В Creatio помещаемые в хранилище данные хранятся в виде бинарных сериализованных объектов.

Redis поддерживает несколько стратегий хранения данных:

  • Хранение данных только в памяти. Персистентная база данных преобразуется в некий кэширующий сервер.
  • Периодическое сохранение данных на диск (по умолчанию). Периодическое создание копий (snapshot) один раз в 1–15 минут в зависимости от времени создания предыдущей копии и количества измененных ключей.
  • Лог транзакций. Синхронная запись каждого изменения в специальный append-only лог-файл.
  • Репликация. Каждому серверу можно указать мастер-сервер, после чего все изменения на мастере будут воспроизводиться и на подчиненном.

Конкретный способ хранения данных определяется путем конфигурирования сервера Redis. На текущий момент в Creatio хранение данных осуществляется в памяти с периодическим сохранением дампа на диск, однако не поддерживается возможность репликации данных.

Более подробно информация по Redis представлена в официальной документации.

Виды хранилищ Creatio. Хранилище данных и кэш

В Creatio реализована поддержка двух видов хранилищ — хранилища данных и кэша.

Хранилище данных предназначено для промежуточного хранения редко изменяемых, "долгосрочных" данных. В кэше же, как правило, хранится оперативная информация.

Дополнительно для каждого вида хранилища определены свои логические уровни размещения данных (табл. 1, 2).

Табл. 1. — Уровни хранилища данных

Уровень Описание
Request Уровень запроса. Данные доступны только в течение времени обработки текущего запроса. Соответствует значению перечисления Terrasoft.Core.Store.DataLevel.Request.
Session Уровень сессии. Данные доступны только в сессии текущего пользователя. Соответствует значению перечисления Terrasoft.Core.Store.DataLevel.Session.
Application Уровень приложения. Данные доступны для всего приложения. Соответствует значению перечисления Terrasoft.Core.Store.DataLevel.Application.

Табл. 2. — Уровни кэша

Уровень Описание
Session Уровень сессии. Данные доступны только в сессии текущего пользователя. Соответствует значению перечисления Terrasoft.Core.Store.CacheLevel.Session.
Workspace Уровень рабочего пространства. Данные доступны для всех пользователей одного и того же рабочего пространства. Соответст