Кэширование предназначено для ускоренной загрузки запрашиваемых данных на мобильное устройство пользователя. Кэш – это сохранённая на сервере мобильной платформы копия данных, полученных из ресурса источника данных. При запросе данных с мобильного устройства сервер возвращает обновление из сохранённого кэша без обращения к источнику данных. За счёт этого сокращается время обработки запроса.
Совет. Если объем запрашиваемых данных небольшой, то используйте передачу транзакционных данных для обработки ответа при разрыве соединения.
Кэш хранит ответы источника данных с указанием версий, дату сохранения кэша, срок истечения актуальности, информацию для сопоставления запроса с кэшем: для какого ресурса кэш, какие учетные данные использовались при запросе к источнику данных и входные параметры запроса. Кэш ресурса доступен для управления кэшами по параметрам в подразделе «Управление кэшем».
Дельта – разница между двумя версиями данных ресурса, позволяющая мобильному устройству восстановить новую версию ресурса из сохранённой старой версии.
Для каждой таблицы ресурса дельта содержит:
полный список строк на вставку;
идентификаторы строк на удаление;
номера начальной и конечной версии данных кэша. Версия данных кэша ресурса соответствует порядковому номеру запроса к источнику данных и доступна при просмотре кэша в строке «Версия».
Для получения подробной информации об использовании дельты в запросах обратитесь к разделу «Обозначение версий дельты в запросах».
Помимо номера версии кэш ресурса содержит уникальный идентификатор «ETag», который передаётся вместе с данными или дельтой. При указании в запросе уникального идентификатора сервер мобильной платформы автоматически определяет, какой версии кэша соответствует запрос, рассчитывает и передаёт дельту мобильному устройству между запросом и последней версией кэша на сервере.
Взаимодействие мобильного устройства, сервера мобильной платформы и источника данных при кэшировании:
мобильное устройство:
хранит одну версию кэша по параметрам;
формирует запросы на получение данных к серверу платформы;
обновляет хранящийся кэш при получении дельты от сервера мобильной платформы;
сервер мобильной платформы:
хранит несколько версий кэша по параметрам для каждой связки ресурса, учетных данных и набора значений входных параметров;
принимает запросы от мобильного устройства;
проверяет актуальность текущей версии кэша для запрашиваемых данных;
обновляет данные через запрос к источнику данных и рассчитывает хэш-сумму по идентификаторам записей ресурса;
вычисляет дельту между актуальной версией кэша и версией на мобильном устройстве по номеру версии кэша;
отправляет дельту или полную версию данных на мобильное устройство.
источник данных:
формирует ответ, соответствующий параметрам запроса, и передаёт серверу мобильной платформы.
Алгоритм обновления данных на мобильном устройстве:
Мобильное устройство посылает запрос на обновление данных.
Сервер мобильной платформы проверяет актуальность кэша по запрашиваемым данным:
если кэш актуален, сервер высчитывает дельту на основании сохранённых данных без обращения к источнику;
если кэш устарел, сервер запрашивает данные от источника данных и высчитывает дельту.
Дельта передается мобильному устройству с сервера мобильной платформы.
Мобильное устройство восстанавливает актуальную версию из сохранённых данных и полученной дельты.
Схема использования кэша при работе с одним ресурсом:
Для кэшируемых ресурсов производится проверка целостности данных:
При получении данных от источника на сервере мобильной платформы рассчитывается хэш-сумма по идентификаторам записей запрашиваемого ресурса.
Хэш-сумма, рассчитанная на сервере мобильной платформы, отправляется на мобильное устройство вместе с актуальной версией кэша или дельтой двух последних версий кэша.
Данные ресурса обновляются на мобильном устройстве, после чего производится расчёт хэш-суммы на мобильном устройстве.
На мобильном устройстве производится сравнение хэш-суммы, полученной с сервера мобильной платформы, с хэш-суммой, рассчитанной на мобильном устройстве:
если хэш-суммы совпадают, то проверка целостности данных завершается;
если хэш-суммы не совпадают, то данные на мобильном устройстве удаляются и выполняется повторный запрос данных ресурса с сервера мобильной платформы. После получения данных на мобильном устройстве обновляются данные ресурса, выполняется расчёт хэш-суммы аналогично шагу 3 и производится сравнение хэш-сумм аналогично шагу 4:
если хэш-суммы совпадают, то проверка целостности данных завершается;
если хэш-суммы не совпадают, то на мобильном устройстве отображается ошибка о несовпадении хэш-сумм.
Для использования кэширования установите флажок «Кэшировать», который доступен после импорта ресурса. При установке флажка будут отображены дополнительные параметры кэширования:
Задайте параметры кэширования:
Срок актуальности кэша. Укажите время в формате <часы : минуты : секунды>, в течение которого кэш считается актуальным после момента создания. На основе этого параметра и даты создания кэша высчитывается время, после которого кэш считается устаревшим. Если с мобильного устройства выполняется запрос данных до того момента, когда кэш уже считается устаревшим, то пользователю возвращаются данные из сохранённого кэша, иначе сервер мобильной платформы выполняет запрос к источнику данных. Для избежания заполнения памяти установите расписание удаления устаревших кэшей. Поле обязательно для заполнения;
Сохранять по. Укажите количество строк от 10000 до 100000, записываемых в кэш за одну итерацию;
Примечание. Без указания количества строк скорость записи в кэш будет максимальна, так же как и потребление памяти.
Сколько старых версий хранить. Укажите количество версий кэша, хранение которых обеспечивает обработку запросов от мобильных устройств с различными версиями сохранённых данных. По умолчанию количество версий кэша не ограничено.
Примечание. Хранение старых версий потребляет память на сервере мобильной платформы.
Хранить последнюю версию кэша в оперативной памяти. Установите флажок для хранения последней версии кэша в оперативной памяти и базе данных. За счёт получения последней версии кэша из оперативной памяти ускоряется первичная загрузка данных на мобильное устройство. По умолчанию флажок снят и последняя версия кэша хранится только в базе данных.
Примечание.
При использовании данного параметра учитывайте следующие особенности:
● размер кэша не должен превышать 512МБ;
● хранения последней версии кэша приводит к увеличению
объёма потребления оперативной памяти.
Количество дельт в оперативной памяти. Укажите количество дельт, которые будут хранить изменения между старыми версиями и последней актуальной версией кэша, в оперативной памяти. За счёт хранения заранее рассчитанной дельты между старой версией и последней актуальной версией кэша в оперативной памяти ускоряется загрузка данных на мобильное устройство и снижается нагрузка на процессор.
Примечание.
При использовании данного параметра учитывайте следующие особенности:
● количество дельт в оперативной памяти должно быть
меньше или равно количеству старых версий кэша, указанных в параметре
«Сколько старых версий хранить».
● хранение указанного количества дельт приводит
к увеличению объёма потребления оперативной памяти.
Измените входные параметры ресурса для получения среза данных через запросы и нажмите кнопку «Сохранить». Ресурс будет добавлен в список содержащихся ресурсов источника данных и его входные параметры будут доступны для управления кэшем ресурса.
Запросы к ресурсам источника данных приведены в разделе «Метод работы с табличными ресурсами».
См. также: