[rabbitmq-discuss] py-amqplib being reworked

Ben Hood 0x6e6562 at gmail.com
Thu Dec 4 11:29:09 GMT 2008


Michael,

On Thu, Dec 4, 2008 at 10:08 AM, Michael Arnoldus <chime at mu.dk> wrote:
>> Good question, I don't think that it's very expressive without using
>> some kind of thread model - although obviously from a kernel
>> perspective, everything is just a state machine :-)
>
> Obvoiusly :-)
>
> And of course it's possible without threads using poll/select or some
> similar mechanism.

True. Threads only present parallelism to the programmer in a easy to
understand fashion.

>> Having said that, I think you *may* have taken what I said out of
>> perspective - just because you get rid of channels does not mean that
>> that you have to get rid of client side threads. The main motivation
>> behind command multiplexing within a single TCP connection *seems* to
>> be to allow multiple clients threads to use a single connection.
>> However, it is conceivable that each client side thread could have
>> it's own transport layer connection (or not-connection in the case of
>> UDP). So a client could thread as much as it likes, and the server
>> could remain oblivious of this.
>>
>> The reason why command multiplexing has been questioned is because it
>> *apparently* re-invents flow control mechanisms that are already
>> available in TCP and SCTP.
>
> I see what you mean. Also, when we tested the OpenAMQ C client we discovered
> that it can't handle channels (don't now if this is still the case). Do you
> have any idea if channels are about to be removed?

Yes, Pieter doesn't think the channels are good idea and hence the
OpenAMQ client limits the amount of channels within a connection to
one. In order to get parallelism you need to start a separate AMQP/TCP
connection.

Personally I think this approach has its merits, because I don't think
there is any real proven benefit of re-inventing flow control, but I
may be wrong.

As to whether they will be removed, I can't say anything about the
actual spec. There is a low volume dev list at amqp.org, maybe you can
ask your question there.

HTH,

Ben




More information about the rabbitmq-discuss mailing list