activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin MacNaughton" <>
Subject ActiveMQ 6.0 Broker Core Prototype
Date Thu, 04 Jun 2009 19:26:18 GMT
Hi Everyone,

So over the last couple of months Hiram and I have been doing some
experimenting with some bits that we hope might start to serve as a
foundation for a new broker core for 6.0. Now that we're kind of out of
the investigation phase it seems like a good time to start some
discussion on what we've been looking at. The primary goals that we had
in mind were:

-Improved Scalability (particularly in threading model)
-Improved Performance.
-Improved Memory Management / Flow Control model
-Improved/Simplified Queue and Cursored Queue.
-Flexible protocol handler support. 
-Better modularization of components. 
So with that in mind, over the next couple of days/weeks I though we
could get a couple of threads going around the above points. First off
to get started looking at some of the stuff:
It is located in the activemq sandbox at:
Architecture Notes
For a detailed list of architecture notes, check out the webgen
directory, the README file there gives instructions on how to generate
architecture notes. This also
Running some test cases:
There are few test cases that should help give you a feel for some of
this stuff.
When running these test cases you should be sure to use the -server jvm
1.	activemq-queue module org.apache.activemq.flow.MockBrokerTest.
This is a good starting point for looking at some of the flow control,
dispatcher and queue modules. It is a very basic MockBroker which uses a
lightweight proto-buf based protocol. You should feel free to play
around with some of the hardcoded options in the test (e.g. ptp=true,
tcp=true, threadsPerDispatcher etc).
2.	activemq-openwire module This test does
performance testing against the SharedQueue implementation and is a good
place to start looking at queue persistence and the CursoredQueue. It
employs openwire messages with using network connecitons. Check out which currently hardcodes
the queue sizes; you can change DEFAULT_SHARED_QUEUE_PAGING_THRESHOLD
and the associated persistence policy to play around with paging.
3.	activemq-openwire module This test uses
the full blown broker, adds in a tcp transport layert and provides
options for persistence and durable subscriptions (albeit asynchronous
at the moment). It extends in the
activemq-broker module which has some additional hard coded options to
play around with. Again refer to to mess around with queue
It is still a work in progress, so any input would be a tremendous help!

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message