[jboss-jira] [JBoss JIRA] Updated: (JGRP-1099) NAKACK: don't send retransmission requests individually
Bela Ban (JIRA)
jira-events at lists.jboss.org
Fri Nov 13 07:38:06 EST 2009
[ https://jira.jboss.org/jira/browse/JGRP-1099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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
More information about the jboss-jira
mailing list