ActiveMQ Apollo optimises messaging for multicore
Version 1.0 of Apollo, a sub-project of the Apache ActiveMQ messaging project, has been released. Apollo is radical reworking of ActiveMQ with a new threading and dispatching architecture. Apollo currently implements the Stomp wire protocol (1.0 and 1.1) as implemented by ActiveMQ and includes a JMS (Java Message Service) API for applications.
Hiram Chirino, lead developer on Apollo, says that it can scale to a large number of concurrent connections and destinations but with constant number of threads. According to the Chirino, the current ActiveMQ has complex thread locking which can become a bottleneck on multicore processors. With Apollo, an asynchronous model, inspired by Apple's Grand Central Dispatch technology and implemented in Java as HawtDispatch, is used to avoid using lots of locks on multiple critical sections allowing the code to run more smoothly on multicore systems.
Chirino says he feels the next step for Apollo, as it has proved itself in benchmarking, would be to integrate it into ActiveMQ 6, but that is a discussion for the ActiveMQ developer community. Apollo 1.0 is available to download under the Apache 2.0 licence.