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