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]

Reply via email to