[
https://issues.apache.org/jira/browse/DISPATCH-781?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16035052#comment-16035052
]
Ted Ross commented on DISPATCH-781:
-----------------------------------
Notes on how this feature works:
The routing protocol has been enhanced such that the routers each track the
following data for each mobile address:
- Number of incoming links
- Aggregate capacity for outgoing links
You can see the result of this synchronization from each router's point of view
by using "qdstat -f". This will show, for each address, the local in-links and
out-capacity as well as the remote in-links and out-capacity.
This data is used to compute a target-credit value for each address. The rules
for computing target-credit are as follows:
- if total-out-capacity == 0, target-credit = 0
- if total-out-capacity <= total-in-links, target-credit = 1
- else target-credit = total-out-capacity / total-in-links
The target-credit is also shown by "qdstat -f"
When an incoming link (from a sender) is established, it's credit-window is
set. The credit-window is the minimum of the address's target-credit and the
link's capacity. The capacity on incoming links is now used as a maximum for
the number of credits that may be simultaneously issued on that link.
Each time the target-credit is adjusted (because total-in-links and/or
total-out-capacity changed), each of the incoming links is revisited and the
links' credit-window values are adjusted.
If a link's credit-window is increased, the additional credit is issued to the
peer immediately.
If a link's credit-window is decreased, the link is annotated with a
credit-deficit. This deficit value is decremented in lieu of issuing
replacement credits and serves to allow the in-effect credit-window to drift
down to the target as deliveries are settled. Credit is never revoked nor
drained. It is simply not replenished in the correct quantity to effect the
credit decrease.
> Experimental - Tie end-to-end flow control of message-routed deliveries to
> outgoing capacity
> --------------------------------------------------------------------------------------------
>
> Key: DISPATCH-781
> URL: https://issues.apache.org/jira/browse/DISPATCH-781
> Project: Qpid Dispatch
> Issue Type: Improvement
> Components: Router Node, Routing Engine
> Reporter: Ted Ross
> Assignee: Ted Ross
>
> This feature reverses the management of incoming credit for message-routed
> deliveries.
> The current mechanism is based on the the capacity of the incoming
> (sender-client) links. Each attached sender is given credit equal to the
> configured link capacity regardless of the capacity of outgoing
> (receiver-client) links for the same address. This means that even under
> congestion, a newly attached sender will get full capacity credit to send.
> The proposed mechanism is based not on incoming capacity but on outgoing
> capacity. In this case, the senders are provided a share of the total
> outgoing capacity for an address. As the number of incoming links (senders)
> for an address changes and the total capacity for outgoing links changes, the
> credit window of the senders shall be adjusted.
> The proposal is a heuristic approach. It does not revoke credit from senders
> (but will limit the number of credits that are replenished). It will also
> not deny credit if there are more incoming links than outgoing capacity.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]