Robert Godfrey wrote:
Hi Etienne,
Welcome to Qpid...
2009/2/20 Arnaud Simon <[email protected]>:
Hi Etienne,
Good to see that you have time to invest in Qpid.
It would be nice if you can sketch out a clustering proposal. Maybe Rob can
point you to the Java broker architecture documentation? Rob what's the
current status of the 0.10 Java broker? Do you believe Etienne can start
helping on clustering?
Sketching some ideas on clustering would be good...
There's a pretty complete clustering implementation in the C++ broker at this
point. I'd like to be included on any Java cluster discussions so we can share
ideas & experiences.
Start at http://cwiki.apache.org/qpid/clusteringha.html, the design note is a
bit old but still mostly accurate.
The Big Idea behind the cluster design is to separate clustering from broker
logic as much as possible by having the cluster regard the broker to a large
extent as a "black box". The cluster's job is to sort all the frames arriving at
all the nodes into a single ordered list (using virtual synchrony). Since every
node then processes the same list in the same order, we get the same results
everywhere.
There are some areas where this assumption doesn't hold: in c++ messages are
dequeued according to the writability of outbound connections, and message TTL
and producer flow control both involve decisions based on the local clock, which
we can't assume is synced across the cluster. So cluster nodes multicast extra
"control frames" to ensure that everybody agrees on the outcome of these kinds
of indeterminate decisions. This involves some abstract classes into the broker
code so the cluster can alter the behavior.
Cheers,
Alan.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]