HornetQ 2.0 faster than ActiveMQ 5.3 on Independent Benchmark but what about ActiveMQ 6?

| by Dio Synodinos on Feb 18, 2010. Estimated reading time: 2 minutes |

JBoss HornetQ  has proven faster in peer reviewed benchmark, than the current version of ActiveMQ, mainly because of its choice to implement a highly tuned journal that uses AIO when running on Linux. ActiveMQ seems to be going the same way for version 6, pushing the competition.

Back in October of 2009 ActiveMQ had its first SPECjms2007 benchmark result for version 5.3. The ActiveMQ team was very pleased about the results back then:

Needless to say, 5.3.0 does nicely in both horizontal (number of destinations) and vertical (load per destination) scalability. It is fitting to see Apache ActiveMQ being used in the world's first SPECjms2007 submission.

SPECjms2007 is a benchmark for evaluating the performance of enterprise message-oriented middleware servers based on JMS, which provides a standard workload and performance metric for competitive product comparisons, as well as a framework for in-depth performance analysis of enterprise messaging platforms. It measures the end-to-end performance of all components that make up the application environment, including hardware, JMS server software, JVM software, database software if used for message persistence, and the system network.

Since then JBoss HornetQ has participated in the benchmark which reported that it was much faster then it competition:

HornetQ- the new ultra high performance enterprise grade messaging system from JBoss, sets a record breaking score in the SPECjms2007 industry standard benchmark for JMS messaging system performance. HornetQ 2.0.GA obtained scores up to 307% higher than previously published SPECjms2007 benchmark results, on the same server hardware and operating system set-up. The peer-reviewed results are available on the web-site:

As InfoQ has reported in the past, HornetQ, which is basically a rebranding of JBoss Messaging, has an optional highly customized journal that uses Linux Asynchronous IO (AIO) via a native code layer for higher performance:

HornetQ provides message persistence using its own built-in, high performance journal. HornetQ has no dependency on clunky, slow, relational databases for persistence. The journal is a unique piece of technology that automatically detects if running on Linux and uses Linux Asynchronous IO (AIO) via a native code layer for astonishing performance. If AIO is not available seamlessly falls back to using Java NIO, so will run seamlessly on any Java platform.

This technique seems to provide much better performance than journals implemented in pure Java and as Rod Davies author of “ActiveMQ in Action” responds to JBoss Tim Fox, it is being implemented in the next version of ActiveMQ:

[…] we liked the idea of using direct I/O on linux systems so much we added it to ActiveMQ 6 a few months ago. We like healthy competition - keep up the good work!

It will be interesting to see the results that ActiveMQ gets after this improvement and compare them with the also improved version of HornetQ (v2.1), when both became available.

You can find more information about HornetQ, ActiveMQ and JMS right here on InfoQ!

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

astonishing performance by Andreas Mueller

I don't see this "astonishing performance" of HornetQ. I've tested it against SwiftMQ and it falls far behind. Even with their AIO log installed it is half the throughput with persistent messages as SwiftMQ with disk sync enabled.

Re: astonishing performance by Tim Fox


As I said on the serverside article, we have tested HornetQ against SwiftMQ internally, and HornetQ scales with persistent messages to a level well beyond with SwiftMQ is capable of.

We'll be backing this up soon with a set of systematic benchmarks performed in as rigorous a way as possible. You'll also be able to repeat them yourself to verify the results.

Re: astonishing performance by Andreas Mueller

No problem if this is verifiable and conforms with our license. You should also check your non-transacted/persistent send behavior. Seems you send async here which is not JMS conform.

Re: astonishing performance by Tim Fox

HornetQ by default sends non transacted persistent messages "blocking", i.e. we wait for a response from the server before sending the next one, in order to conform to strict JMS semantics out of the box.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

4 Discuss