Кэширование

В Digital Q.Sensor BI реализован механизм кэширования данных, использующихся для построения графиков. При запросе повторяющихся данных считывание производится из кэша, что позволяет уменьшить число обращений к источнику данных в процессе работы и повысить быстродействие По умолчанию кэширование включено и задается системной настройкой. Настройка кэширования доступна как для отдельного графика, так и для дашборда. Приоритет: график > дашборд > системные настройки. Настройки графика имеют более высокий приоритет чем настройки дашборда. Настройки дашборда имеют более высокий приоритет чем общесистемные настройки.

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

Для того чтобы отключить кэширование, нужно зайти в Настройки графика/дашборда и включить чек-бокс «Отключить кэширование». Чтобы принудительно очистить кэш дашборда, нужно открыть левое меню и нажать кнопку «Очистить кэш».

Прогрев кэша

Digital Q.Sensor BI умеет определять наиболее используемые дашборды и проводить для них регулярное фоновое кэширование данных. Этот процесс называется Прогрев кэша.

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

По умолчанию прогрев кэша включен для всех дашбордов (глобальное включение прогрева задается параметром SENSOR_CACHE_REFRESH_ENABLED, параметр SENSOR_CACHE_REFRESH_ENABLED_IF_NULL автоматически включает прогрев при добавлении нового дашборда). Прогрев распространяется на весь дашборд. Для выполнения прогрева необходимо, чтобы у графиков на дашборде было включено кэширование. Если у графика отключено кэширование, запросы этого графика будут игнорироваться при прогреве дашборда.

Алгоритм отбора дашбордов для прогрева кэша:

  1. Выбираются дашборды, к которым обращались последние 14 дней (интервал задан параметром SENSOR_STATISTICS_EXPIRATION_PERIOD_DAYS).
  2. Отдельно на дашборде упорядочиваются комбинации запросов данных (с учетом применяемых фильтров) по частоте выполнения и размеру записи. Прогрев кэша будет выполнен для первых 70 комбинаций запросов (ограничение числа комбинаций задается параметром SENSOR_CACHE_WARMUP_MAX_PER_DASHBOARD_NUMBER). Запросы должны попадать в критерии:
    • По времени выполнения – от 1 до 45 с (SENSOR_CACHE_REFRESH_MIN_REQUEST_TIME_MS и CACHE_REFRESH_MAX_REQUEST_TIME_THRESHOLD)
    • По диапазону времени обращения – не более 14 дней (SENSOR_STATISTICS_CACHE_REFRESH_PERIOD_DAYS)

Прогрев кэша выполняется одним потоком (SENSOR_EXPORT_QUEUE_PROCESSING_POOL_SIZE - настройка числа потоков, по умолчанию 1; запросы выполняются последовательно) один раз в час (периодичность задается параметром SENSOR_CACHE_REFRESH_CRON). Если к дашборду обращались в последние 14 дней, то будет произведена попытка кэширования. Записи прогрева старше 14 дней автоматически очищаются.

Для конкретного дашборда прогрев кэша можно включить в настройках дашборда