Тема навеяна этой
http://rsdn.org/forum/alg/6882119.flatАвтор: Рома Мик
Дата: 23.08.17
и этой
http://rsdn.org/forum/design/6874864?tree=treeАвтор: Ikemefula
Дата: 15.08.17
.
Представим, что у нас индикатор A — температура воздуха, и индикатор B — температура воды.
От них есть зависимости: индикатор "средняя температура воды", индикатор "средняя температура воздуха", а от них — средняя по больнице, и ещё 100000 других индикаторов. Все они persistent в бд и в memcache.
Пользователь в один момент времени следит за 3 случайно выбранными индикаторами. Обновления температур волы или воздуха приходят часто, и мы не можем попросить их подождать, пока мы оповестим всех подписчиков, их состояние стало dirty.
Как практически реализовать, что есть некая копия Merkle Tree, где сохранены серийные номера исходных индикаторов, и хэши зависимостей их. Что для показа 3 случайных индикаторов, быстро узнать не грязные ли они, и построить быстро дерево "грязных" dependable индикаторов в топологической сортировке, и поставить задачи на пересчет в очередь на исполнение?
Цимес- изменение базового индикатора отражалось одним изменением хэша, вместо оповещения 100000 подписчиков, и их 100000 флагов "dirty".