-
Enhancement
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
False
-
When we send a retransmission request for missing messages, e.g. {5, 6-9, 10, 15-17}, it is possible that the actual retransmission table has moved on, as it received missing messages and/or stability messages.
This can happen on heavy traffic.
Example: the retransmit table could be [low=8, highest-delivered=10, highest-received=20]. Because message 10 has been delivered, we can remove all seqnos from the retransmit request that are less than or equal to 10. The retransmit request would thus be trimmed to {15-17}.
This optimization reduces both retransmission requests and retransmission responses.
Update: we can actually remove all seqnos lower than the highest deliverable seqno, not the highest delivered seqno: 'deliverable' means that the seqno and all seqnos below it can be delivered, ie. there are no seqno gaps between highest-delivered and highest-deliverable.