Кэширование данных In-Memory

Для кэширования данных в «Форсайт. Аналитическая платформа» применяется механизм In-Memory. In-Memory – это подсистема, обеспечивающая загрузку данных из источников (кэширование кубов), локальное хранение данных, быстрый многопользовательский доступ и высокопроизводительную обработку. Кэширование позволяет избежать необходимости каждый раз отправлять запрос на выборку данных из СУБД. Следующие объекты репозитория поддерживают кэширование In-Memory:

Важно. Если для справочников используется кэширование объектов репозитория, то при использовании кэширования данных In-Memory настройки кэширования объектов репозитория не учитываются. Кэширование данных In-Memory имеет более высокий приоритет, чем кэширование объектов репозитория.

Данные хранятся в файловом кэше. В кэш попадают значения в определённой точке и координаты, идентифицирующие привязку точки к источнику данных. Файлы, содержащие те данные, с которыми в текущий момент осуществляется работа, проецируются в память компьютера. Страничный механизм представления данных в памяти обеспечивает возможность работы в ограниченной оперативной памяти с почти не ограниченным объёмом хранимых в файлах данных. При недостатке памяти организуется постраничная загрузка/выгрузка данных.

При кэшировании справочников в файловый кэш сохраняются значения атрибутов, соответствующие элементам справочника. Учитывается наличие параметров у справочника (для каждого набора параметров создаётся свой кэш), наличие периода действия элементов (справочники НСИ), права доступа разных пользователей к элементам.

При использовании механизма In-Memory в оперативную память загружается специальная структура с данными источника. В последующем, вся обработка данных (построение среза данных, фильтрация, агрегация, сортировка и тому подобное) выполняется непосредственно в оперативной памяти без обращения к источнику данных. Таким образом, сокращается время реакции платформы и повышается интерактивность работы пользователя. Кэш организует инкрементальную обработку данных, при которой изменение отдельных ячеек приводит к перерасчёту только связанных с ними данных, а не всего источника. При работе учитываются права доступа к данным, которыми обладает пользователь. Также учитываются сегменты данных, которые настраиваются при формировании ролевой модели для моделирования бизнес-процессов и для продукта «Форсайт. Бюджетирование».

Архитектура работы механизма In-Memory выглядит следующим образом:

Архитектура механизма In-Memory включает в себя:

Для использования кэширования данных In-Memory:

  1. Заполните раздел InMem:

Примечание. Раздел InMem должен быть заполнен на всех клиентских компьютерах, если используется настольное приложение, или на BI-сервере, если используется веб-приложение.

  1. Выберите объект репозитория в навигаторе объектов.

  2. Включите кэширование объекта с помощью флажка «Кэшируемый объект»:

Примечание. Включение кэширования в веб-приложении доступно только для кубов и баз данных временных рядов.

После выполнения действий будет использоваться кэширование данных In-Memory выбранного объекта репозитория. BI-сервер применяет кэширование данных справочников, у которых кэш был включен в настольном приложении. При работе с объектом из настольного и веб-приложения используется общий кэш, если пути размещения кэша, заданные в настройках для клиентских компьютеров и BI-сервера, совпадают. Путь к папке, в которой хранятся файлы кэша, задается на BI-сервере или на всех клиентских компьютерах пользователей с помощью параметра DataDir в настройках системного реестра и в файле Settings.xml. По умолчанию кэш создаётся в следующих папках:

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

После изменения и сохранения данных, обновленные данные будут присутствовать в кэше на том компьютере, где производилась работа. Для обновления кэша на компьютерах других пользователей настольной версии «Форсайт. Аналитическая платформа» используйте кнопку «Обновить кэш» на вкладке «Кэш» в свойствах объекта. Для обновления кэша кубов и баз данных временных рядов в веб-приложении используйте команду «Обновить кэш» в контекстном меню объекта. При обновлении кэш очищается и создаётся заново.

Ограничения и особенности работы

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

См. также:

Кэширование