You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by Hiram Chirino <ch...@gmail.com> on 2009/06/11 15:03:39 UTC

Re: ActiveMQ 6.0 Broker Core Prototype -- Flow Control / Memory Management

On Wed, Jun 10, 2009 at 12:29 PM, Colin
MacNaughton<cm...@progress.com> wrote:
> The Basics:
>
> Each resource creates a FlowController for each of it's Flows which is

Might be worth defining what are considered 'resources' and give a few
examples of them.

> assigned a corresponding FlowLimiter. As elements (e.g. messages) pass
> from one resource to another they are passed through the downstream

Ditto with the 'downstream' term.  Although this one may be little
more self explanatory once folks understand resources and how there is
a direction to their handling of messages.

>    * Flow Control: As messages propagate from one resource A to another
> B, then if A overflows B's limit, B will block A and A can't release
> it's limiter space until B unblocks it. This allowance for overflow into
> downstream resources is a key concept in flow control performance and
> ease of use. Provided that the upstream resource has already accounted
> for the message's memory it can freely overflow any downstream limiter
> providing it reserves space from elements that caused overflow.

Additional note: Overflowing makes most sense in situations where the
message source is NOT trying to load balance across many 'sinks'.
Like in pub sub or exclusive consumer cases.  A FlowControler can also
accessed in a way that it does not overflow, which would make most
sense in shared queue scenario.



-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Open Source SOA
http://fusesource.com/