qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kyrie.Gao" <jie....@hp.com>
Subject Re: flow control in Broker Federation on 0.22
Date Wed, 12 Nov 2014 10:08:14 GMT
Hello Gordon,

I did some experiments based on your suggestions, and the results sound that
some of the option you mentioned doesn't have any effect. Uhmm...I am not
sure if my test steps are right.

/* To enable flow control over a federation link, you need to use the 
--ack option/

The help page tells us its meaning “Acknowledge transfers over the bridge in
batches of N”. When I set ack to a very huge value like 63537 and then set
back to 10, no special things happen. May be it should be used on a queue
route?

ps: we use a static exchange route currently. a queue route cannot be used
in our project because changing to it costs too much effort.

/* flow control in the client is tied to the sender capacity. The back 
pressure by the broker is in the form of delayed acknowledgement of 
published messages and the number of outstanding unacknowledged 
published messages on a sender is giverned by the capacity  So for a low 
limit, you want to lower the capacity of the sender/

I set a lower value for the capacity, say, from 50 to 1, and it has some
effects on sending speed. It will need more time to send out all of the
messages with the new value than the previous one, in another point of view,
it can ease the broker’s pressure and reduce the possibility of the flood
event issue. But by this way we cannot solve the problem thoroughly. In
addition, by this way (change something by client side) we need to ask
people from other team to do some fix.

/* if you don't need the route to be an exchange route, you can make it a 
queue route which doesn't involve the automatic creation of a bridge 
queue. along with the ack option this should prevent messages being lost 
over the federation link./

it costs too much effort if we gonna to use queue route.

Thanks,
Kyrie


Gordon Sim wrote
> On 10/29/2014 11:56 AM, Gao, Jie (Kyrie, HPIT-DS-CDC) wrote:
>> Currently we want to use flow control feature in our project for one of
>> the client program produced too many events in a short time, or called
>> event flood. Messages which may be very vital for the customers will be
>> lost so we want to find a way to slow down incoming publications. Then we
>> noticed the flow control, it seems that the client will throttle itself
>> per qpid doc:
>> http://qpid.apache.org/releases/qpid-0.30/cpp-broker/book/producer-flow-control.html.
>>
>> However, after I did more experiments on this, the result seems to be
>> tricky.
>>
>> Assume there is only one broker and one normal queue that I add by using
>> qpid-config, everything behaviors just like what that qpid doc told us.
>> At this time client(producer) will be blocked when this normal queue is
>> up to the bottle neck. When I add one more broker and create an exchange
>> route between them, it seems to be more complex with regard to flow
>> control issue.
>>
>> Broker A(bridge_queue_a) ------Broker B (queue_b, bridge)
>>
>> Suppose broker B has a normal queue named “queue_b” (limited by 100 bytes
>> and flow stop threshold is 50 bytes) and broker A has a bridge queue
>> named “bridge_queue_a”(also limited by 100 bytes).  Using a client called
>> “c” to send out some messages (10 bytes each), we can see queue_b will
>> set the flow stop flag as true after 5 messages are sent from client c.
>> when we want to send another 5 messages, client c will throw an warning
>> exception thus the process will exit abnormally. Intriguingly, 
>> bridge_queue_a is deleted in a heartbeat and soon after that create a new
>> one, so bridge_queue_a will never meet flow stop problem. It seems a
>> defeat, from our standpoint.
>>
>> So my question is, does it considered as a normal behavior? Or does I
>> make any mistake /misunderstanding from that?
> 
> A couple of different points that may (or may not!) help:
> 
> * To enable flow control over a federation link, you need to use the 
> --ack option
> 
> * flow control in the client is tied to the sender capacity. The back 
> pressure by the broker is in the form of delayed acknowledgement of 
> published messages and the number of outstanding unacknowledged 
> published messages on a sender is giverned by the capacity  So for a low 
> limit, you want to lower the capacity of the sender
> 
> * if you don't need the route to be an exchange route, you can make it a 
> queue route which doesn't involve the automatic creation of a bridge 
> queue. along with the ack option this should prevent messages being lost 
> over the federation link.
> 
> Hope this helps (and sorry for the delayed response),
> 
> --Gordon.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 

> users-unsubscribe@.apache

> For additional commands, e-mail: 

> users-help@.apache





--
View this message in context: http://qpid.2158936.n2.nabble.com/flow-control-in-Broker-Federation-on-0-22-tp7615885p7616308.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message