HornetQ 2.0 faster than ActiveMQ 5.3 on Independent Benchmark but what about ActiveMQ 6?
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.
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 spec.org web-site: www.spec.org/jms2007/results/jms2007.html
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.
Re: astonishing performance
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