[
https://jira.jboss.org/jira/browse/JGRP-1099?page=com.atlassian.jira.plug...
]
Bela Ban updated JGRP-1099:
---------------------------
Attachment: bla5.java
bla5 shows how MyRange can be used together with a sorted set to maintain a list of
MyRanges.
The (commented) use of BitSet shows how to handle one range, ie. this code would be added
to MyRange.
When the Retransmitter adds a new range, it would create a MyRange with a BitSet of (e.g.)
LOW to HIGH, and add it to the sorted set.
When a message is received, first the MyRange is looked up through the ceiling()
operation, then the bit in the BitSet is set.
For retransmission, the timer task calls a method similar to printRanges() which
determines the ranges and then calls retransmit(low, high) for each range.
When the BitSet is completed set (all '1's), then we cancel the task and remove
the MyRange from the sorted set.
NAKACK: don't send retransmission requests individually
-------------------------------------------------------
Key: JGRP-1099
URL:
https://jira.jboss.org/jira/browse/JGRP-1099
Project: JGroups
Issue Type: Task
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 2.9
Attachments: bla5.java
Currently, when we have messages 1,2 from P and receive 11, then we
- Add message 11 to the NakReceiverWindow
- This causes messages 3-10 to be added to the Retransmitter
These messages are added *individually*, so we have 7 new tasks in the Retransmitter.
This also means we send 7 retransmission requests rather than 1 !
Because retransmission requests are sent as OOB messages, they won't get bundled (see
[1]) ! Same for the retransmission responses (for OOB messages); they won't get
bundled.
Disadvantages:
#1 We send 7 retransmission messages rather than 1. This could be mitigated if OOB
messages were bundled though...
#2 We have 7 rather than 1 additional tasks in the Retransmitter. This taxes the
DelayQueue [2] used by the
ScheduledThreadPoolExecutor used by the Retransmitter
SOLUTION: go back to the old scheme of having tasks in the Retransmitter which have
ranges of seqnos rather than individual seqnos. This is a bit trickier though than single
seqnos, as a range of [3 - 10] needs to be broken into [3-5] and [7-10] if seqno 6 is
received.
[1]
https://jira.jboss.org/jira/browse/JGRP-1090
[2]
https://jira.jboss.org/jira/browse/JGRP-1051
--
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