summaryrefslogtreecommitdiff
path: root/cpp/src/qpid
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-10-25 18:00:47 +0000
committerAlan Conway <aconway@apache.org>2010-10-25 18:00:47 +0000
commit327bbd4da201fbb7e2967c3366e12ab43687475a (patch)
treedf94965b381b401a9ce6cbb3ea887d5014da3f0b /cpp/src/qpid
parentf27a733f9a4cca3ad2a42acb35ab4620a47e320d (diff)
downloadqpid-python-327bbd4da201fbb7e2967c3366e12ab43687475a.tar.gz
Initial design document on implementing active/passive clustering.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1027211 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid')
-rw-r--r--cpp/src/qpid/cluster/new-cluster-active-passive.txt39
1 files changed, 39 insertions, 0 deletions
diff --git a/cpp/src/qpid/cluster/new-cluster-active-passive.txt b/cpp/src/qpid/cluster/new-cluster-active-passive.txt
new file mode 100644
index 0000000000..56618da83c
--- /dev/null
+++ b/cpp/src/qpid/cluster/new-cluster-active-passive.txt
@@ -0,0 +1,39 @@
+-*-org-*-
+* Active/passive cluster implementation
+
+An active/passive implementation requires a subset of the active/active approach:
+- drop Queue ownership and locking
+- replicate subset of Cluster interface, don't need to know all message disposition.
+
+Can re-use:
+- cluster membership
+- new member updates
+- store integration
+
+Simpler implementation of broker::Cluster:
+- act like distributed MessageStore. Don't need acquisition details.
+- can do immediate local enqueue and still guarantee order.
+- can use smaller message IDs: just sequence number. Can be implicit.
+
+Extra requirements:
+- Passive members refuse client connections and redirect to active member.
+- Choose new active member when the active dies.
+
+Question: How best to direct clients to the correct node after failover?
+
+** Active/active vs. active passive
+
+Active/active benefits:
+- Total # connections: practical 60k limit per node.
+- Handle client losing connectivity to one cluster node - can fail over to any.
+- Some load sharing: reading from client + multicast only done on direct node.
+
+Active/active drawbacks:
+- Co-ordinating message allocation impacts performance.
+
+Active/passive benefits:
+- Don't need message allocation strategy, can feed consumers at top speed.
+
+Active/passive drawbacks:
+- Can't help clients with no connectivity to the active member.
+- Clients must find the single active node in failover.