<div dir="auto">Forgot to mention, in my scenario both sides use NTP and the times we saw is very close (sub second differences).<div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto"><br></div><div dir="auto">Antonio Meireles </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em sex., 5 de ago. de 2022 15:28, Antonio Meireles - GMail <<a href="mailto:antonio.meireles@gmail.com">antonio.meireles@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>The Idea is not keeping rejecting It forever If for any cause the other part really needs to request It again.</div><div dir="auto"><br></div><div dir="auto">I am thinking in use the SendingTime from counterpart x my UtcNow. </div><div dir="auto"><br></div><div dir="auto">In my scenario If I just send 100 new messages in a burst and if they detect a gap in the first message, they will also detect gaps for the next 99 messages, and will generate all 100 resend requests almost at the same time.</div><div dir="auto"><br></div><div dir="auto">I also have a 100+ms RTT between the hosts. So It is very common they generate all requests before I receive the first one. </div><div dir="auto"><br></div><div dir="auto">I know we may have clock differences between the hosts, and to address a more generic scenario we can think another configuration to hold the amount of time we will keep rejecting similar gaps.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Tks,</div><div dir="auto"><br></div><div dir="auto">Antonio Meireles (Guto)</div><div dir="auto"><br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">Em sex., 5 de ago. de 2022 14:43, Christoph John <<a href="mailto:christoph.john@macd.com" target="_blank" rel="noreferrer">christoph.john@macd.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<span dir="ltr" style="margin-top:0;margin-bottom:0">Hi</span> <br> <br> <span dir="ltr" style="margin-top:0;margin-bottom:0">Just curious: what do you want to store the time for? I could imagine that in the "flooding" scenario the requests come in in short succession so after one range has been satisfied the other side should send a new range anyway.</span> <br> <span dir="ltr" style="margin-top:0;margin-bottom:0">Moreover, which time do you want to store and compare? A time local to your environment ("the time it finished to be sent"). Now on the next resend request which time do you compare it to? The sending time? That might be off by even seconds compared to the time you are using. Even earlier than the time you are using locally (except both sides are using NTP or the like which my experience isn't always the case).</span> <br> <br> <span dir="ltr" style="margin-top:0;margin-bottom:0">Just my 2 cents.</span> <br> <span dir="ltr" style="margin-top:0;margin-bottom:0">Cheers</span> <br> <span dir="ltr" style="margin-top:0;margin-bottom:0">Chris</span> <br>
<div><br>
<div>
<p>Aug 5, 2022 19:19:45 Antonio Meireles - GMail <<a href="mailto:antonio.meireles@gmail.com" rel="noreferrer noreferrer" target="_blank">antonio.meireles@gmail.com</a>>:</p>
</div>
<blockquote style="margin:0;border-left:3px solid #ccc;padding-left:10px">
<div dir="auto">
Hi,
<div dir="auto"><br>
</div>
<div dir="auto">
Quickfix has the SEND_REDUNDANT_RESENDREQUESTS=N configuration that can be used to avoid sending ResendRequests of a gap that is already asked and will be redundant.
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
This can avoid ResendRequest loops, but sometimes the counterpart do not use the same approach and may struggle the session with several Duplicated and Redundant ResendRequests.
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
If we process duplicated ResendRequests we can send all the gap several times and this will only contribute to flood the connection.
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
So, I am proposing a configuration DISCARD_DUPLICATED_RESEND_REQUESTS=Y (default=N) that will make possible to configure a session to discard these duplicated ResendRequests.
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
To do this, the session should store the last ResendRequest boundaries and the time it finished to be sent, and check new ResendRequests against these stored values. If the new asked gap is inside the stored boundaries and earlier than the stored time, the session should discard the ResendRequest message.
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
Do anyone have comments about this scenario or approach?
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
Do you think it is usefull to follow implementing It and proposing a PR?
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
BR,
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
Antonio Meireles (Guto)
</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
</div>
</blockquote>
</div>
</div>
_______________________________________________<br>
Quickfixn mailing list<br>
<a href="mailto:Quickfixn@lists.quickfixn.com" rel="noreferrer noreferrer" target="_blank">Quickfixn@lists.quickfixn.com</a><br>
<a href="http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com</a><br>
</blockquote></div></div></div>
</blockquote></div>