Что еще важно знать о модуле «Сводные данные»?

Прежде, чем перейти к статьям, в которых мы рассмотрим содержимое каждой вкладки модуля Сводные данные, необходимо рассказать подробнее о том, что происходит «внутри» системы в тот момент, когда Администратор или Организатор, работая в системе управления Навигатором, нажимает на иконку Сводные данные и входит в модуль.

Почему важно понимать, что происходит в этот момент? Понимая, как устроен модуль и как он работает, пользователь может не тратить своё рабочее время на проверку «за Навигатором» на калькуляторе, а также на отправку в службу поддержки Навигатора сообщений с рядом часто задаваемых о модуле вопросов.

Итак, пользователь нажал кнопку Сводные данные и вошёл в модуль. Что происходит в этот момент?

В этот момент формируется много повторяющихся запросов к базе данных. К примеру: нужно посмотреть данные во вкладке Основное. Пользователь входит в модуль Сводные данные, при этом система автоматически формирует, как мы и описали выше, сводные отчёты, чтобы вывести их на экран, перед глазами пользователя. Чтобы понимать, каким образом это происходит, представьте себе, что в этот момент в базу данных обращаются многочисленные запросы, цель которых собрать данные из того или иного раздела Навигатора, подсчитать их, обработать и вывести, в итоге, на экран в виде уже готовой сводной таблицы. Именно поэтому, как мы и писали выше, на загрузку модуля Сводные данные уходит некоторое время - в это время как раз и происходят эти запросы, их обработка, извлечение информации из базы данных и построение отчётов в модуле.

Известно, что в системе управления Навигатором одновременно работает большое количество пользователей, иногда сразу тысяча, а то и более человек. А что, если сводные данные, причём именно вкладку Основное одновременно захотят увидеть не один и не два, а, к примеру, 300, 400 и более пользователей «админки» Навигатора? Каждое нажатие кнопки Сводные данные и вход пользователя в модуль - это команда для системы на то самое большое количество запросов, о которых мы говорили выше - ведь, чтобы вывести на экран сводные данные, к примеру, по заявкам, система должна послать в базу данных не только запрос о количестве заявок, но и к связанным с заявками данным, такими, к примеру, как Статус, наименование программы и группы, наименование организации, реализующей программу и её муниципалитет и многое другое. Говоря проще - отчёт требуется один, а запросов, чтобы его построить, нужно очень много.

А теперь представим себе такое: 500 пользователей Навигатора одновременно, не сговариваясь, вошли в модуль Сводные данные. Что при этом произойдет?

В этот момент в обработку одновременно отправится огромное количество запросов - ведь система должна показать сведённые отчеты каждому пользователю, который их, по сути, запросил при входе в модуль. Теперь представим себе, что эти же самые 500 пользователей, войдя в модуль Сводные данные, тут же выходят из него и входят снова. Что происходит при этом? Снова в базу данных отправляется огромное количество тех же самых запросов - ведь система вновь должна свести данные в отчёты и показать их пользователям. При этом не следует забывать, что в тот момент, когда наши 500 пользователей входят в модуль и выходят из него, к ним могут присоединиться и другие пользователи «админки», и вот прошло всего лишь несколько минут, а количество запросов (практически одних и тех же) увеличилось в тысячи и десятки тысяч раз.

В такой момент нагрузка на систему становится колоссальной. Чтобы сохранить в такие моменты работоспособность и высокую производительность системы, и, при этом, не лишать пользователей возможности просматривать сводные данные, предусмотрено системное кэширование. Что это такое?

Сразу надо отметить, что системное кэширование - это не кэширование в браузере, которое можно «сбросить» с помощью кнопки «Обновить страницу» или сочетания клавиш Ctrl+F5 на клавиатуре ПК. Системное кэширование, выражаясь доступно, это когда система фиксирует повторяющиеся тысячами одни и те же запросы, записывает результаты их обработки в базу данных, где хранит их некоторое время (к примеру, как запись голосового сообщения на диктофон). В течение этого времени пользователь, при входе в модуль Сводные данные получает не результат абсолютно нового своего запроса, а результат из базы данных, который уже был сформирован чуть ранее, на основании ранее полученных аналогичных запросов.

Приведём несколько примеров, для наглядности и более чёткого понимания:

Региональный администратор сегодня вошёл в модуль Сводные данные во вкладку Основное для того, чтобы посмотреть по определенному муниципалитету данные в столбце Детей 5-17 обучается, человек и видит в данном столбце цифру 38.

Администратор этого же муниципалитета сегодня тоже вошёл в модуль Сводные данные во вкладку Основное и видит в одноимённом столбце цифру другую, к примеру, 36, несмотря на то, что буквально час назад в муниципалитете произошло зачисление на обучение 2-х детей и цифра должна быть 38. Администратор муниципалитета переживает и волнуется - ведь он, перед тем, как состоялись эти 2 зачисления, уже заходил в модуль и проверял цифру: до зачисления 2-х детей цифра была 36. А сейчас, после зачисления ещё двух обучающихся, цифра по прежнему 36, хотя должна измениться и стать 38!

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

Как быть в таком случае?

Просто ожидать. Системный кэш в течение некоторого времени автоматически «сбрасывается» и информация в модуле Сводные данные, конечно же, обновляется и актуализируется. Почему нет смысла заходить в модуль каждые 30-40 минут и проверять: не изменились ли данные? Прошло ещё 2 часа, а может сейчас изменились? Об этом мы как раз и постарались подробно рассказать выше.
Если пользователь чётко знает, что вчера обучающихся было 34, а сегодня состоялось 2 зачисления и обучающихся должно быть, в итоге, 36 - значит так и будет в Сводных данных, когда система сама, в течение некоторого времени автоматически «сбросит» кэш, и сделает, по сути, новый «слепок» данных, получив от пользователей снова те же самые запросы. И будет также хранить этот «слепок» некоторое время и также будет в течение некоторого времени показывать пользователям.
В подобных случаях не стоит впадать в панику, следует просто спокойно ожидать обновления данных в модуле. В течение суток, как правило, данные в модуле обновляются и актуализируются - это происходит автоматически.

В завершение несколько рекомендаций:

  • экономьте своё время: заведите себе правило изучать актуальную информацию в модуле Сводные данные не чаще, чем раз в сутки (вряд ли сводные отчёты требуются вам ежедневно);
  • не тратьте время на бессмысленные «проверки»: пересчитывать «за Навигатором» на калькуляторе и сравнивать данные в модуле Сводные данные с данными в других разделах Навигатора не нужно, зачастую бессмысленно, особенно при попытках сравнивать сводный отчёт с теми данными, которые не сведены в этот отчет. Выражаясь проще, не надо сравнивать прогноз погоды на сегодняшний день с данными о погоде в этот день на основе сводного отчёта метеослужбы за последние 30 лет - данные точно не совпадут, поскольку сравнивается то, что сравнивать нельзя. Если вас интересует, к примеру, общее количество заявок в статусе Обучается на сегодня, или количество программ, созданных в этом месяце, то есть вполне конкретные данные, Сводные данные вам не нужны - такого рода информацию легко и быстро извлечь из соответствующих разделов Навигатора: из раздела Заявки и Программы;
  • не проверяйте данные в модуле Сводные данные через каждый час, два, несколько часов: в этой статье мы постарались простым и доступным языком, не забывая о том, что пользователь Навигатора - не программист, рассказать, по какой причине этого делать не стоит;
  • если заметили, что данные в модуле Сводные данные, на протяжении длительного периода, не меняются от слова совсем, «застыли», несмотря на то, что фактически данные в профиле вашего учреждения или в вашем муниципалитете уже изменились достаточно давно и сильно, сразу сообщайте в службу технической поддержки с конкретными примерами.