I'm proposing a redesign of the C++ cluster, this is how I would have done it in
the first place if only I had known...
Here's an initial writeup:
https://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/src/qpid/cluster/new-cluster-design.txt
The current design has some maintainability issues, indicated by the amount of
time I've spent chasing cluster bugs. I think it's important for the long-term
success of the cluster to move to a design that addresses those issues. I think
the design described here does that and *maybe* gives us some performance
benefits as well. I'll be spending some time thinking about how to move
incrementally from where we are and/or how to rapidly prototype & prove the new
design.
I'm very interested in feedback. I'm also interested in converging the design
with future Java or Windows cluster implementations. In the case of Windows I'd
hope to at least use a common API for interacting with the broker code. Ideally
I'd re-factor the cluster implementation to be portable to a windows virtual
synchrony engine (if such a thing exists) & reuse the lot.
I can say from experience it is HARD to write correct cluster code and even
harder to test it thoroughly. It's taken a little over 3 years to get the C++
cluster to what looks like a reasonably stable & robust state. The more we can
capitalize on re-use of design, implementation and tests the happier we'll all be.
Cheers,
Alan.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]