Моментальные снимки устройств (кэш настроек)

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

НОВЫЙ ТЕРМИН: Кэш - это набор данных, дублирующих оригинальные значения, сохраненные где-либо или обработанные ранее. Кэш используется, когда оригинальные данные трудно извлечь или обработать (обычно с точки зрения времени доступа), в то время как чтение кэша "выгоднее" (т.е. легче и быстрее).

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

Кэш настроек периодически синхронизируется с устройством. Синхронизация происходит в следующих случаях:

  • Когда устройство подключается к AggreGate Server

Каждая настройка синхронизируется по следующему алгоритму:

  • Если значение настройки не существует в кэше сервера, оно кэшируется (т.е. значение считывается с устройства и сохраняется в кэше сервера)

  • Если значение настройки в кэше сервера было изменено позже, чем на устройстве, кэшированное значение записывается на устройство

  • Если значение настройки в устройстве было изменено позже, чем в кэше сервера, кэшированное значение заменяется текущим значением настройки устройства

  • В остальных случаях никакие действия не выполняются

Снимок устройства может постоянно храниться в базе данных или находиться в памяти. Это поведение контролируется параметром Режим кэширования настроек, расположенным в общих свойствах устройства. Если для параметра Режим кэширования настроек выбрано значение хранилище (это значение по умолчанию), каждое обновление настроек устройства приводит к обновлению базового хранилища конфигурации. Это приводит к проблемам с производительностью в высоконагруженных системах, поэтому при обработке тысяч обновлений в секунду следует изменить режим кэширования на память.