FC: dynamically adjust credits
------------------------------
Key: JGRP-511
URL:
http://jira.jboss.com/jira/browse/JGRP-511
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.5
FC currently has a static number of credits (max_credits). It would be beneficial to
implement something similar to TCP's exponential backoff and slow start, to take the
message loss rate into account.
Goal: when there is an overload, we reduce the credits in order to avoid compounding the
overload by sending messages. On the other hand, we can send more messages when the
receiver(s) have free capacity. To do this, each receiver sends the number of credits it
can accept with its responses. By default, this would be the default number of credits (in
TCP: size of the sliding window).
DESIGN:
NAKACK (and/or UNICAST) send the loss rate (rolling average of number of messages missing
over number of messages received, per sender) when it exceeds a certain value (defined in
NAKACK,UNICAST) up the stack.
FC looks at the loss rate and slices the number of credits for that sender in half
(exponential backoff). On the next response, it piggy backs the new number of credits, so
that sender will block sending messages.
When the loss rate drops below a certain (predefined) value, NAKACK sends another event up
the stack. FC then increases the credits by a predefined value (slow start). Next time, it
increases the value by the predefined value by 2 and so on, until the max number of
credits have been reached again.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira