Кэширование

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

  Кэширование объектов Кэширование данных
Справочники    
       табличные справочники

       вычисляемые справочники

       табличные справочники НСИ

       календарные справочники

       составные табличные справочники НСИ

Базы данных временных рядов

Объекты среды разработки

Регламентные отчеты

Кубы (всех типов, кроме вычисляемого)

Карты

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

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

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

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

Кэширование справочников и базы данных временных рядов работает интеллектуально и доступно для разных пользователей, если они имеют одинаковые права доступа и значения параметров. То есть одновременно может быть закэшировано несколько экземпляров одного и того же объекта (например, для разных значений параметра).

При кэшировании объектов среды разработки используется файловый кэш, создаваемый в папке, которая задана операционной системой (более подробно смотрите в статье базы знаний «Кэширование сборок при компиляции форм и модулей»). Также при кэшировании объектов среды разработки учитывается флажок «Кэширование сборок только на локальном диске», указываемый в параметрах репозитория.

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

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

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

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

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

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

Кэш какого-либо объекта доступен для обновления по расписанию.

Примечание. Работа с кэшем доступна только в рамках одного запущенного экземпляра платформы.

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

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

Механизм кэширования, использовавшийся в предыдущих версиях платформы

Для совместимости с предыдущими версиями Prognoz Platform также существует возможность включения старого механизма кэширования в «Форсайт. Аналитическая платформа». Для этого в реестре или файле Settings.xml задайте параметру UseInMem значение false. При работе старого механизма кэширования в базе репозитория в двоичном виде создается и сохраняется матрица данных. Этот кэш является общим для всех пользователей и может быть сброшен любым пользователем. Управление кэшем отдельных объектов также осуществляется на вкладке «Кэш» окна «Свойства объекта». Кэш стандартного куба доступен для обновления по расписанию.

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

Особенности старого кэша:

При работе старого механизма кэширования в «Форсайт. Аналитическая платформа» используется ветка реестра [HKEY_CURRENT_USER\Software\Foresight\Foresight Analytics Platform\9.0\9.0]. В данной ветке могут быть созданы следующие дополнительные разделы или ключи:

Дополнительный раздел

Параметры
-
  • CachefilePath (Строковый). Путь к папке, в которой будут храниться кэшированные версии объектов среды разработки и файлы с кэшированными двоичными данными таблиц. Внутри указанной папки автоматически будет создаваться дополнительная иерархия папок:
    AsmCache<n>\Mod\<ID репозитория>\<номер сборки>\ - персональная папка для каждого репозитория; внутри нее создаются дополнительные папки, в которых будет сохраняться файловый кэш объектов среды разработки.

Orcl8
  • BlobMaxBufferSize (DWORD). Размер буфера для работы с данными, хранящимися в полях двоичного типа. Размер буфера указывается в байтах. Данная настройка используется при работе с СУБД на базе Oracle 9.x\10.x\11.x.

Dimensions
  • Cache (DWORD). Признак использования кэша элементов измерений в оперативной памяти, разделяемого между всеми сессиями пользователей. Используется для измерений, у которых не активирована настройка управления правами на элементы. Допустимые значения: 1 - использовать кэш в оперативной памяти.

CacheKeeper
  • NotCachedInFile. Атрибут любого типа, при наличии данного атрибута двоичные данные не будут кэшироваться на локальном диске.

Примечание. При установке BI-сервера или сервера безопасности на веб-сервер IIS по умолчанию пул приложения будет запускаться под учетной записью Network Service; при установке на веб-сервер Apache - сам веб-сервер Apache по умолчанию работает под учетной записью Local System. Чтобы при работе веб-приложения использовались указанные в таблице флаги, записи в реестр должны быть добавлены из-под соответствующей учетной записи. Для этого можно воспользоваться приложением PsExec, которое входит в пакет системных программ Windows Sysinternals. Для запуска выполните команду «psexec -i -u "nt authority\network service" cmd.exe», при этом будет запущена командная строка Windows под указанной учетной записью. Далее в командной строке запустите редактор реестра с помощью команды «regedit» и создайте необходимые флаги.

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

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

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

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

Очистка кэша

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

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

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

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

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

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

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

См. также:

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