[
https://jira.jboss.org/jira/browse/JGRP-1105?page=com.atlassian.jira.plug...
]
Bela Ban commented on JGRP-1105:
--------------------------------
OK, here's what we can do:
We create new SeqnoRanges every N milliseconds, e.g. all seqnos added in T=0-30ms go into
range 1, 31-60ms go into range 2 and so on.
When a seqno is received and the current time - last_time is > MAX_TIME, we create a
new range and add the seqno to the range. Ditto when the current range's size is
exceeded.
Algorithm:
add(seqno):
- if current range has all received and size not exceeded:
- add to current range (reuse that range)
- start the retransmission task (with a new TIMEOUTS copy)
else if not all received and time - last_time > MAX_TIME or size exceeded:
- create new SeqnoRange (current range)
- set last_time = time
- If retransmission task is not running: start retransmission task
- add seqno to current range
Task run:
- retransmit all missing messages
- If all received: cancel the task
TODO:
- when do we remove a range and retransmission task ?
UNICAST: don't send retransmission messages individually
--------------------------------------------------------
Key: JGRP-1105
URL:
https://jira.jboss.org/jira/browse/JGRP-1105
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.9
Essentially the same as for NAKACK: instead of adding every message to the retransmitter
and creating 1 timer task for it, we create SeqnoRanges in increments of (say) 1000
messages. SeqnoRange #1 is 1-1000, #2 is 1001-2000 and so on.
Every SeqnoRange has a low and a high, e.g. lo=1 and high=1000. However, we only
retransmit messages with their bit set to 0 from low to bits.length: if we added messages
1-100 to the first range, then low=1, length=100 and high=1000. We only retransmit from
1-100.
This creates 1 task in the timer for 1000 messages, instead of 1000 tasks ! When adding a
new message (e.g. 101), length() gets automatically adjusted, so retransmission will
include 1-101 (only the 0 bits of course).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira