[rabbitmq-discuss] So who's Judy and what does she have to do with the High Speed TCP driver for Erlang?

Tony Garnock-Jones tonygarnockjones+rabbitmq at gmail.com
Wed Jul 18 16:04:17 BST 2012

On 18 July 2012 10:39, Matthias Radestock <matthias at rabbitmq.com> wrote:

> Take a look at rabbit_reader.erl, in particular the recvloop and mainloop,
> and rabbit_net.erl.

It looks like you could summarise the improvements as: instead of
requesting an exact number of bytes in the reader loop, and waiting for
that exact number to be delivered, when you need more input you set
active_once, which feeds you whatever's available. You take what's given,
and if it's (more than) enough, consume it up until it is no longer
sufficient, at which point you set active_once again.

Even shorter: the new code avoids use of async_recv and instead sets
active_once when it wants more input, until it has enough to work with.

Is that right?

Can you say anything about how much better things are this way? E.g. some
percentage improvement to throughput, presumably?

Tony Garnock-Jones
tonygarnockjones at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120718/dda7ab18/attachment.htm>

More information about the rabbitmq-discuss mailing list