В какой-то момент я понял, что передача данных в такой схеме описывается с помощью обыкновенного дифференциального уравнения. Описание модели и выводы, которые удалось получить с её помощью, под катом.
Обозначим — объем данных в некоторых условных единицах, накопленных для обмена на стороне компонента А к моменту времени . Пусть пауза между завершением сеанса обмена и началом следующего равна единиц времени, а для передачи одной единицы данных требуется единиц времени. Тогда на передачу единиц данных требуется единиц времени. Скорость передачи данных равна
Если скорость накопления данных на стороне А обозначить , то является решением дифференциального уравнения:
Так как неограниченный рост объёма ещё непереданных данных является крайне нежелательной ситуацией, то важной задачей становится получение условий ограниченности решений этого уравнения.
Для простоты будем считать функцию непрерывной. Пусть
где
при всех , а — постоянная, играющая роль среднего значения.
Рассмотрим несколько примеров. Пусть периодическая и её график имеет вид:
В этом случае , .
Численно проинтегрировав уравнение (1) для нескольких значений параметров и начальных значений , получим следующие графики решений:
Из примеров видно: когда , решения ограничены и при различных значениях система стремится к некоторому установившемуся режиму. Чем меньше длительность пауз между сеансами , тем эта сходимость быстрее. При такой сходимости не наблюдается, а решения с течением времени растут. Уменьшение длительности пауз замедляет скорость роста, но тенденция к неограниченному возрастанию всё равно сохраняется.
В общем случае можно показать, что если , то решения уравнения (1) ограничены, а если — будут получаться неограниченные решения. То есть ограниченность решений определяется только соотношением скоростей накопления и извлечения данных. Длительность пауз между сеансами обмена , единственный параметр, которым можно легко управлять, принципиально не влияет на поведение системы. Хотя, как видно из соотношения (1) и примеров, с её увеличением скорость обмена уменьшается.
В итоге анализ модели позволяет сделать следующие выводы. Если скорость обмена оказывается недостаточной, и на стороне источника постоянно растёт объём данных для отправки, то пытаться исправить ситуацию уменьшением пауз между сеансами не имеет смысла. Помочь здесь может только увеличение производительности системы.
С другой стороны, в случае когда сервис обмена постоянно загружает компьютеры в ущерб другим задачам, верным решением будет рекомендовать увеличить в разумных пределах продолжительность пауз: это повлияет только актуальность данных, без риска переполнения источника неотправленными данными.
Подробные выкладки для условий ограниченности решений и некоторые другие вопросы, касающиеся рассмотренной модели, опубликованы в материалах школы-семинара ”Математическое моделирование, численные методы и комплексы программ” имени Е.В. Воскресенского. Посмотреть и скачать статью можно по этой ссылке.
Комментарии (4)
AC130
16.05.2019 07:21Если скорость обмена оказывается недостаточной, и на стороне источника постоянно растёт объём данных для отправки, то пытаться исправить ситуацию уменьшением пауз между сеансами не имеет смысла.
Вроде для этого вывода модель с дифференциальными уравнениями не нужна? На крайний случай можно было бы рассмотреть условие dx\dt < 0 (что есть ненакопление объёма данных на источнике), сократить дробь для скорости передачи данных на x, максимизировать по a0 (решение a0=0) и у вас получается та же самая граница 1/a1 > phi0dm_p2016 Автор
16.05.2019 14:27Дифференциальное уравнение всё же неявно здесь подразумевается: ведь рассуждения строятся на равенстве скоростей dx/dt = -x/(xa_1 + a_0) + f(t). Только не записано само уравнение.
В общем случае использовать для ограниченности критерий dx/dt < 0 нельзя: на одних участках x(t) может убывать, на других — возрастать. А x(t) при этом может быть как ограниченной, так и неограниченной.
Если принять a0=0, то сократить на x в общем случае тоже нельзя, так как x может оказаться равным нулю. Если это проигнорировать, то получится, что мы что-то забираем с постоянной скоростью, даже когда данных нет, x(t) станет отрицательным.
Рассуждения, использовавшиеся при получении вывода о неограниченности решений при 1/a1 < phi_0, в чем-то схожи с вашей идеей.
Запишем дифур и воспользуемся тем, что x/(xa_1 + a_0) возрастает по x. Тогда
dx/dt = -x/(xa_1 + a_0) + f(t) > -1/a_1+\phi_0 + \phi(t) > c + \phi(t),
где c > 0. Откуда вытекает, что x(t) >= ct + const.
Для доказательства ограниченности при условии 1/a1 > phi_0 потребовались более сложные методы.
amarao
17.05.2019 18:35Не убедили. То, что вы говорите, и так 101 тюнинга. Точнее, 102 тюнинга, потому что 101 тюнинга говорит, что если вы делаете тюнинг не из экономических или спортивных интересов, то ваша архитектура — г-но.
Кстати, в вашей матмодели не учтены накладные расходы на отправку — слишком частый поллинг может начинать сам по себе есть много ресурсов.
lynxus
диффуры как то подразумевают ещё один вариант решения :)
можно попробовать предавать дельту:
когда получатель не забрал старую дельту, то источник просто добавляет к ней новую
если можно перевести данные в дельты, конечно…