Meaning of linkCapacity

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Meaning of linkCapacity

Hudalla Kai (INST/ESY1)
Hi,

I am wondering what the (practical) meaning of the "linkCapacity" configuration property on listeners is and in particular, how it is related to the "maxFrameSize" and "maxSessionFrames" properties. Do the latter ones pose a limit on the former one? My experience is that if I do not specify any value for "linkCapacity" then the Dispatch Router flows 250 credits to a sender link connecting to it (assuming that a consumer has connected with a receiver link interested in the relevant address). This number, however, seems to be unrelated to the number of credits the consumer has flowed to Dispatch Router, which lets me assume that the credits to flow to a sender are mainly related to, well, what exactly?

Can somebody shed some light on this?

Mit freundlichen Grüßen / Best regards

Kai Hudalla
Chief Software Architect

Bosch Software Innovations GmbH
Schöneberger Ufer 89-91
10785 Berlin
GERMANY
www.bosch-si.com

Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB 148411 B;
Executives: Dr.-Ing. Rainer Kallenbach, Michael Hahn

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Meaning of linkCapacity

Ted Ross
Kai,

Please take a look at https://issues.apache.org/jira/browse/DISPATCH-781
for insight into how link capacity is used for end-to-end flow control and
a prototyped new way to use it.

A quick summary is that synchronizing credit across a network is
impractical at scale.  Instead, we use link capacity to establish local
credit loops (between endpoint and connected router) and then use delivery
settlement as the control for end-to-end flow control (and load balancing).

maxFrameSize and maxSessionFrames are for session flow control and are
completely unrelated to link/credit flow control.  linkCapacity is
therefore not related to maxFrameSize/maxSessionFrames.

-Ted

On Fri, Jul 21, 2017 at 10:27 AM, Hudalla Kai (INST/ECS4) <
[hidden email]> wrote:

> Hi,
>
> I am wondering what the (practical) meaning of the "linkCapacity"
> configuration property on listeners is and in particular, how it is related
> to the "maxFrameSize" and "maxSessionFrames" properties. Do the latter ones
> pose a limit on the former one? My experience is that if I do not specify
> any value for "linkCapacity" then the Dispatch Router flows 250 credits to
> a sender link connecting to it (assuming that a consumer has connected with
> a receiver link interested in the relevant address). This number, however,
> seems to be unrelated to the number of credits the consumer has flowed to
> Dispatch Router, which lets me assume that the credits to flow to a sender
> are mainly related to, well, what exactly?
>
> Can somebody shed some light on this?
>
> Mit freundlichen Grüßen / Best regards
>
> Kai Hudalla
> Chief Software Architect
>
> Bosch Software Innovations GmbH
> Schöneberger Ufer 89-91
> 10785 Berlin
> GERMANY
> www.bosch-si.com
>
> Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB
> 148411 B;
> Executives: Dr.-Ing. Rainer Kallenbach, Michael Hahn
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Meaning of linkCapacity

Hudalla Kai (INST/ESY1)
Ted,

thank you for your hints and the pointer to the issue regarding the new concept for handing out credits.
However, with the current mechanism in place, i.e. the Dispatch Router flowing credits to senders based on the "linkCapacity" property, I find it hard to believe that it is completely unrelated to the session window size. Consider the following example:

We have configured the router with a session window of 200 frames of 1000 bytes each.
We now connect a slow consumer to the router which, lets say, can process 50 messages of 1000 bytes per second and flows 100 credits to the router on link establishment. We then connect a fast sender to the router which is capable of sending 500 messages of 1000 bytes per sec to the router.

Now the router flows 250 credits (the default) to the sender and the sender immediately sends its first 200 messages to the router which now needs to buffer most of these messages because of the slow consumer. I reckon that the router does now adapts its flowing of new credit to the sender according to the rate at which the buffered messages get settled instead of simply issuing another fixed amount of credits to the sender, i.e. the buffer's fill ratio should be a factor in determining how many credits are flown to the sender(s), or am I mistaken?

Mit freundlichen Grüßen / Best regards

Kai Hudalla
Chief Software Architect

Bosch Software Innovations GmbH
Schöneberger Ufer 89-91
10785 Berlin
GERMANY
www.bosch-si.com

Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB 148411 B;
Executives: Dr.-Ing. Rainer Kallenbach, Michael Hahn

________________________________________
From: Ted Ross <[hidden email]>
Sent: Friday, July 21, 2017 17:13
To: [hidden email]
Subject: Re: Meaning of linkCapacity

Kai,

Please take a look at https://issues.apache.org/jira/browse/DISPATCH-781
for insight into how link capacity is used for end-to-end flow control and
a prototyped new way to use it.

A quick summary is that synchronizing credit across a network is
impractical at scale.  Instead, we use link capacity to establish local
credit loops (between endpoint and connected router) and then use delivery
settlement as the control for end-to-end flow control (and load balancing).

maxFrameSize and maxSessionFrames are for session flow control and are
completely unrelated to link/credit flow control.  linkCapacity is
therefore not related to maxFrameSize/maxSessionFrames.

-Ted

On Fri, Jul 21, 2017 at 10:27 AM, Hudalla Kai (INST/ECS4) <
[hidden email]> wrote:

> Hi,
>
> I am wondering what the (practical) meaning of the "linkCapacity"
> configuration property on listeners is and in particular, how it is related
> to the "maxFrameSize" and "maxSessionFrames" properties. Do the latter ones
> pose a limit on the former one? My experience is that if I do not specify
> any value for "linkCapacity" then the Dispatch Router flows 250 credits to
> a sender link connecting to it (assuming that a consumer has connected with
> a receiver link interested in the relevant address). This number, however,
> seems to be unrelated to the number of credits the consumer has flowed to
> Dispatch Router, which lets me assume that the credits to flow to a sender
> are mainly related to, well, what exactly?
>
> Can somebody shed some light on this?
>
> Mit freundlichen Grüßen / Best regards
>
> Kai Hudalla
> Chief Software Architect
>
> Bosch Software Innovations GmbH
> Schöneberger Ufer 89-91
> 10785 Berlin
> GERMANY
> www.bosch-si.com
>
> Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB
> 148411 B;
> Executives: Dr.-Ing. Rainer Kallenbach, Michael Hahn
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Meaning of linkCapacity

Ted Ross
On Mon, Jul 24, 2017 at 10:36 AM, Hudalla Kai (INST/ECS4) <
[hidden email]> wrote:

> Ted,
>
> thank you for your hints and the pointer to the issue regarding the new
> concept for handing out credits.
> However, with the current mechanism in place, i.e. the Dispatch Router
> flowing credits to senders based on the "linkCapacity" property, I find it
> hard to believe that it is completely unrelated to the session window size.
> Consider the following example:
>
> We have configured the router with a session window of 200 frames of 1000
> bytes each.
> We now connect a slow consumer to the router which, lets say, can process
> 50 messages of 1000 bytes per second and flows 100 credits to the router on
> link establishment. We then connect a fast sender to the router which is
> capable of sending 500 messages of 1000 bytes per sec to the router.
>
> Now the router flows 250 credits (the default) to the sender and the
> sender immediately sends its first 200 messages to the router which now
> needs to buffer most of these messages because of the slow consumer. I
> reckon that the router does now adapts its flowing of new credit to the
> sender according to the rate at which the buffered messages get settled
> instead of simply issuing another fixed amount of credits to the sender,
> i.e. the buffer's fill ratio should be a factor in determining how many
> credits are flown to the sender(s), or am I mistaken?
>

I think your understanding is mostly correct.  The router provides 250
(linkCapacity) credits to a newly attached sender and that sender can then
immediately transfer 250 deliveries.  The rate at which the credit is
replenished will match the rate at which the slower consumer settles
deliveries.  The link capacity only affects the number of outstanding
deliveries per sender that can be buffered in the router network.

In your example, the output buffer on the consumer's link is feeding the
consumer and may be throttled by the session window or the credits supplied
be the receiver, whichever is slowest.  In either case, the actual flow
from the sender is tied to the settlement rate of the consumer(s).

The new scheme is only different in that it might issue fewer than
linkCapacity credits if there is limited output capacity for all the
producers for an address.

-Ted


>
> Mit freundlichen Grüßen / Best regards
>
> Kai Hudalla
> Chief Software Architect
>
> Bosch Software Innovations GmbH
> Schöneberger Ufer 89-91
> 10785 Berlin
> GERMANY
> www.bosch-si.com
>
> Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB
> 148411 B;
> Executives: Dr.-Ing. Rainer Kallenbach, Michael Hahn
>
> ________________________________________
> From: Ted Ross <[hidden email]>
> Sent: Friday, July 21, 2017 17:13
> To: [hidden email]
> Subject: Re: Meaning of linkCapacity
>
> Kai,
>
> Please take a look at https://issues.apache.org/jira/browse/DISPATCH-781
> for insight into how link capacity is used for end-to-end flow control and
> a prototyped new way to use it.
>
> A quick summary is that synchronizing credit across a network is
> impractical at scale.  Instead, we use link capacity to establish local
> credit loops (between endpoint and connected router) and then use delivery
> settlement as the control for end-to-end flow control (and load balancing).
>
> maxFrameSize and maxSessionFrames are for session flow control and are
> completely unrelated to link/credit flow control.  linkCapacity is
> therefore not related to maxFrameSize/maxSessionFrames.
>
> -Ted
>
> On Fri, Jul 21, 2017 at 10:27 AM, Hudalla Kai (INST/ECS4) <
> [hidden email]> wrote:
>
> > Hi,
> >
> > I am wondering what the (practical) meaning of the "linkCapacity"
> > configuration property on listeners is and in particular, how it is
> related
> > to the "maxFrameSize" and "maxSessionFrames" properties. Do the latter
> ones
> > pose a limit on the former one? My experience is that if I do not specify
> > any value for "linkCapacity" then the Dispatch Router flows 250 credits
> to
> > a sender link connecting to it (assuming that a consumer has connected
> with
> > a receiver link interested in the relevant address). This number,
> however,
> > seems to be unrelated to the number of credits the consumer has flowed to
> > Dispatch Router, which lets me assume that the credits to flow to a
> sender
> > are mainly related to, well, what exactly?
> >
> > Can somebody shed some light on this?
> >
> > Mit freundlichen Grüßen / Best regards
> >
> > Kai Hudalla
> > Chief Software Architect
> >
> > Bosch Software Innovations GmbH
> > Schöneberger Ufer 89-91
> > 10785 Berlin
> > GERMANY
> > www.bosch-si.com
> >
> > Registered office: Berlin, Register court: Amtsgericht Charlottenburg,
> HRB
> > 148411 B;
> > Executives: Dr.-Ing. Rainer Kallenbach, Michael Hahn
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Loading...