Opened 6 years ago
Closed 5 years ago
#29 closed улучшение (wontfix)
Опция очищать буфер при потере связи
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | major | Milestone: | 1 очередь |
Keywords: | Cc: | andrei |
Description
Пользователи, которые испытывают наше оборудование, предложили добавить опцию при включении которой - при потере связности между устройствами на длительное время(например 1 минуту), после восстановления соединения передавать только "свежие" данные.
Мотивация такая, что таймаут ожидания у Мастера довольно мал - единицы, десятки секунд, и после истечения этого времени ответы на старые запросы он уже не принимает, и приходится ждать пока буфер заполненный старыми данными будет весь передан и начнётся передача актуальных данных. Добавление этой опции существенно сократило бы время ожидания.
Change History (5)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
Owner: | set to |
---|---|
Status: | new → accepted |
follow-up: 4 comment:3 by , 6 years ago
ммм...
Наверное я немного неправильно сформулировал, это всё для случая, когда соединение не обрывается, но теряется связность.
И пока писал подумал, что в таком случае можно воспользоваться таймером неактивности соединения, и когда таймер сработает, соединение будет разорвано и буфер почищен...
comment:4 by , 6 years ago
Replying to san:
это всё для случая, когда соединение не обрывается, но теряется связность.
Во-первых, а как (по каким критериям) наше устройство может данный случай определить? В смысле, как оно может узнать, что связность отсутствует, да еще и за такое которкое время как минута (в описании тикета ты его называешь длительным, но по сравнению с периодом keepalive для соединений TCP, который обычно составляет 2 часа, это очень короткое время)?
Во-вторых, можно, конечно, поэкспериментировать с маленьким периодом keep-alive и, вероятно, добиться того, что отсутствие связности будет обнаруживаться быстро. Но все равно итогом обнаружения отсутствия связности будет разрыв соединения и (после восстановления связности) установка нового соединения! Случай же, когда соединение не теряется вообще, уже означает, что временное отсутствие связности не было детектировано системой передачи...
comment:5 by , 5 years ago
Resolution: | → wontfix |
---|---|
Status: | accepted → closed |
Можно применять таймер неактивности соединения если хочется почистить буфер при отсутствии связности, предложенное в тикете считаю неактуальным.
Replying to san:
Идея здравая, но я не понимаю, зачем это делать как опцию. Не будет ли логичнее делать так всегда? В смысле, передавать только те данные, которые поступили после установки соединения. Честоно говоря, я иного поведения и не предполагал, и то, что после установки соединения в него могут начать передаваться старые данные, я расцениваю как баг...