Кэширование (In-Memory)

В «Форсайт. Аналитическая платформа» для ускорения работы реализовано кэширование данных и кэширование объектов репозитория.

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

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

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

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

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

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

В настольном приложении управление кэшем отдельных объектов осуществляется на вкладке «Кэш» окна «Свойства объекта». BI-сервер будет применять кэширование данных для объектов, у которых кэш был включен в настольном приложении.

По умолчанию кэш создаётся в следующих папках:

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

Изменение настроек работы самого механизма кэширования осуществляется в файле Settings.xml или реестре. Настройки задаются на клиентских компьютерах, если используется настольное приложение, или на BI-сервере.

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

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

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

Факторы снижения эффективности кэша In-Memory

Ниже приведён список факторов, которые могут вызвать снижение скорости работы с кэшированными данными. В некоторых случаях снижение может быть очень значительным:

Кэширование объектов репозитория

Кэширование справочников и измерений в базах данных временных рядов

Кэшировании объектов среды разработки

Кэшировании регламентных отчетов

Кэширование карт

Кэширование изображений предварительного просмотра объектов

Кэширование в веб-приложении

При работе BI-сервера «Форсайт. Аналитическая платформа» извлечение и хранение данных, необходимых для работы веб-приложения, осуществляется в памяти самого BI-сервера. Также систему можно расширить путем введения дополнительных (более производительных) BI-серверов, на которые будет возложена функция извлечения и кэширования данных из базы репозитория. BI-сервер с веб-приложением будет обращаться к этим BI-серверам и получать поток с необходимыми данными без дополнительного обращения к СУБД.

Для использования такой схемы необходимо в реестре или файле settings.xml заполнить раздел Service. В данном разделе указываются адреса удаленных BI-серверов и настройки репозиториев, для которых будет работать указанная схема кэширования данных.

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

Очистка кэша

Очистка кэша позволяет избежать использования потенциально устаревших данных.

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

Для очистки кэша справочников и базы данных временных рядов выполните команду «Очистить кэш» меню «Сервис» в навигаторе объектов.

Для очистки кэша объектов среды разработки выполните команду менеджера безопасности «Репозиторий > Очистить кэш сборок».

Для очистки кэша регламентного отчета нажмите кнопку «Очистить» в окне «Кэш объекта».

Для очистки кэша данных различных объектов нажмите на кнопку «Очистить кэш» вкладки «Кэш» окна «Свойства объекта».

Для очистки кэша репозитория выполните команду «Очистить кэш» в главном меню «Сервис» навигатора объектов.

См. также:

Интерфейс навигатора | Настройки кэширования