Author: aconway
Date: Mon Nov  1 14:31:12 2010
New Revision: 1029679

URL: http://svn.apache.org/viewvc?rev=1029679&view=rev
Log:
new cluster design: folded active-passive debate into main design doc.

Removed:
    qpid/trunk/qpid/cpp/design/new-cluster-active-passive.txt
Modified:
    qpid/trunk/qpid/cpp/design/new-cluster-design.txt

Modified: qpid/trunk/qpid/cpp/design/new-cluster-design.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/design/new-cluster-design.txt?rev=1029679&r1=1029678&r2=1029679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/design/new-cluster-design.txt (original)
+++ qpid/trunk/qpid/cpp/design/new-cluster-design.txt Mon Nov  1 14:31:12 2010
@@ -371,14 +371,53 @@ Clustering and scalability: new design m
 address scalability as part of cluster design. Think about
 relationship to federation and "fragmented queues" idea.
 
-* Design questions/descisions
+* Design debates/descisions
+
+** Active/active vs. active passive
+
+An active-active cluster can be used in an active-passive mode. In
+this mode we would like the cluster to be as efficient as a strictly
+active-passive implementation.
+
+An active/passive implementation allows some simplifications over 
active/active:
+- drop Queue ownership and locking
+- don't need to replicate message acquisition.
+- can do immediate local enqueue and still guarantee order.
+
+Active/passive introduces a few extra requirements:
+- Exactly one broker hast to take over if primary fails.
+- Passive members must refuse client connections.
+- On failover, clients must re-try all known addresses till they find the 
active member.
+
+Active/active benefits:
+- A broker failure only affects the subset of clients connected to that broker.
+- Clients can switch to any other broker on failover
+- Backup brokers are immediately available on failover.
+- Some load sharing: reading from client + multicast only done on direct node.
+
+Active/active drawbacks:
+- Co-ordinating message acquisition may impact performance (not tested)
+- Code may be more complex that active/passive.
+
+Active/passive benefits:
+- Don't need message allocation strategy, can feed consumers at top speed.
+- Code may be simpler than active/active.
+
+Active/passive drawbacks:
+- All clients on one node so a failure affects every client in the system.
+- After a failure there is a "reconnect storm" as every client reconnects to 
the new active node.
+- After a failure there is a period where no broker is active, until the other 
brokers realize the primary is gone and agree on the new primary.
+- Clients must find the single active node, may involve multiple connect 
attempts.
+
 ** Total ordering.
+
 Initial thinking: allow message ordering to differ between brokers.
 New thinking: use CPG total ordering, get identical ordering on all brokers.
 - Allowing variation in order introduces too much chance of unexpected 
behavior.
 - Usign total order allows other optimizations, see Message Identifiers below.
 
 ** Message identifiers.
+
 Initial thinking: message ID = CPG node id + 64 bit sequence number.
 This involves a lot of mapping between cluster IDs and broker messsages.
 
@@ -387,6 +426,7 @@ New thinking: message ID = queue name + 
 - Requires total ordering of messages (see above)
 
 ** Message rejection
+
 Initial thinking: add special reject/rejected points to cluster interface so
 rejected messages could be re-queued without multicast.
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to