Emergent messaging - Red Hat Enterprise MRG
by Karsten Wade
AMQP, the advanced message queuing protocol, has been quietly and steadily building momentum over the last few years. The AMQP working group has defined a new message queuing protocol specification as well as incubating an implementation (Apache Qpid) that serves as an upstream.
In pursuit of the goal of providing “developers with a simple and more powerful way of constructing messaging dependent applications”, this week Red Hat announced a commercial implementation of AMQP as part of Red Hat Enterprise MRG. MRG combines messaging, realtime, and grid technologies into one consumable that shows a lot of promise in providing extreme messaging and high throughput computing (HTC) with many languages (Java, JMS, C++, Python, Ruby, and .NET) using commodity hardware.
There’s a market breakdown that provides the wide view, and read on for a more detailed developer view.
Carl Trieloff is the lead developer working on AMQP from Red Hat and his post on The Pieces of MRG details how and why the messaging (AMQP), realtime (drop-in binary compatible kernel), and grid (Condor) components provide “better performance using less hardware.”
The MRG implementation of AMQP is not just a “me too” implementation -– it is defining new ground. If you download the initial MRG beta, you will see not only a broker, but also Java, JMS, C++ and Python clients in the initial beta repo. For (Beta 2), we will add clustering, infiniband plugins, and a management console. Ruby and .NET clients will also be included in MRG for GA.
About the AMQP/Qpid messaging:
Some of the work done on the to-be-numbered version of AMQP has some benefits for durable messaging, specifically the ability to acknowledge asynchronously in ranges allowing for single message reliability without head-of-line blocking. What does this mean? We have been able to work with the Red Hat kernel team and AIO engineers to create a journal for MRG that can write at around full LUN speeds for sustained message transfers. With its custom-written page caches, this store writes to the SAN (one of our test arrays) at the rate of ~400,000 DMA write blocks per second which equates ~500,000 small durable messages (enqueue/dequeue) per second per LUN using a fraction of 1 CPU core to run the store for this specific disk array in this test. If the disk array is scaled up, these numbers will increase proportionally. (172bytes + data size rounded up to the 128 byte boundary) divided by AIO disk rate is within 5 percent of your durable message rate.
Deterministic rather than just faster:
Realtime is not a panacea as it can’t make up for or resolve issues in a badly written application. However, realtime works best when the application has been tuned on stock Red Hat Enterprise Linux and then switched to MRG’s realtime kernel to provide determinism. So tune, then flip in MRG Realtime to get better determinism.
Grid technology is based on Condor, which is being released under an OSI approved license, the Apache License, Version 2.0:
In addition, Red Hat is building out a team locally working in tandem with the University of Wisconsin Condor project team. We share a joint vision and believe that by working together, the community at-large will benefit. There is still a lot that can be done around this technology; however, it is clear what can be achieved. If you look at the announcement of the Red Hat/Amazon EC2 deal, you can imagine scheduling critical work from cycle stealing for workloads that are not time-critical to going out to the cloud for rented capacity–all from a single job and management interface. This is only a preview of what is to come.





