[rabbitmq-discuss] Puka client and publisher confirms performance

Marek Majkowski majek04 at gmail.com
Tue Mar 20 10:41:09 GMT 2012


On Wed, Mar 14, 2012 at 18:59, Marek Majkowski <majek04 at gmail.com> wrote:
> On Wed, Mar 14, 2012 at 18:42, Marek Majkowski <majek04 at gmail.com> wrote:
>> On Wed, Mar 14, 2012 at 12:31, Christos Stavrakakis
>> <stavr.chris at gmail.com> wrote:
>>> I am using Puka client [1] in order to send messages with guaranteed
>>> delivery using publisher confirms.
>>>
>>> Trying to send 200.000 messages I see that waiting for the confirms, takes a
>>> lot of time.
>>>
>>> To be more specific:
>>>
>>>     promises = []
>>>     t0 = time.time()
>>>     for i in range(0,200000):
>>>         promise = client.basic_publish(exchange='test_exchange',
>>> routing_key='test',
>>>                                                               body="Hello
>>> world!")
>>>         promises.append(promise)
>>>
>
> Right, there is a performance problem with handling pubacks. The complexity
> grows with n^2 of unacked messages
>
> Good news: the problem is in this line:
>   https://github.com/majek/puka/blob/master/puka/machine.py#L147-148
>
> Bad news: I have no clue how to fix it.
>
> I've rised an issue on github:
>   https://github.com/majek/puka/issues/12

Christos,

Thanks for your report and for the pull request!

I just uploaded puka 0.0.4 to pypi, which solves the problem.

Cheers,
    Marek


More information about the rabbitmq-discuss mailing list