|WikiProject Software / Computing|
|The following Wikipedia contributors may be personally or professionally connected to the subject of the article. Relevant policies and guidelines may include Paid contribution disclosure, Conflict of interest, Autobiography, and Neutral point of view.|
ØMQ can outperform raw TCP in terms of throughput
"Utilizing a message batching technique, ØMQ can outperform raw TCP in terms of throughput" is a polemic claim made by the ØMQ developers, but it is (deliberately) misleading. Since TCP is (for the most time) the underlying transport, ØMQ does not and cannot "outperform" TCP in any way.
What ØMQ really does is send any number of messages that are in the buffer at the time the socket becomes ready in one batch. This is basically a "opportunistic, lucky chance Nagle's algorithm" without a timeout.
A more concise wording would be: ØMQ can maintain low latency while outperforming a very naive implementation sending individual small messages over a TCP_NODELAY socket by batching several messages into a batch opportunistically. It does, on the other hand, not incur the latency of a TCP socket with Nagle's algorithm enabled, as there is no fixed timeout.
- Your point is correct and must be addressed but your suggestion does not seem more concise! Paul Beardsell (talk) 17:54, 7 May 2013 (UTC)
- As an aside what a great improvement 0MQ is over MQ generally! I once was given the great general advice: "MIddleware? Just say no!". 0MQ does a great job while avoiding some of the overly complex MQ implementations I have seen, where the implementation of the MQ and MQ-similar middleware often complicated rather than simplified the message queue problem being addressed. Paul Beardsell (talk) 17:54, 7 May 2013 (UTC)
- I've reworded that claim to be more accurate. I'm not sure if sending messages individually is "very naive"; opportunistic batching is very hard to do right, so typical apps (and frameworks) do not do it. Which is why 0MQ seems faster than "typical TCP apps". Pieter Hintjens (talk) 12:14, 14 June 2013 (UTC)
Reader feedback: more eleberated description ...
more eleberated description of the common patterns, which are described in the 'Technology' section, would be helpful