summaryrefslogtreecommitdiff
path: root/qpid/cpp
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
commit9451fd97191768353a82de6d4096723cd608bf71 (patch)
treefc191abda675b195c952a05e79ce77a195320b41 /qpid/cpp
parenta84e866fcf2d3cd1e7750953c613040302eada03 (diff)
downloadqpid-python-9451fd97191768353a82de6d4096723cd608bf71.tar.gz
Initial design document on implementing active/passive clustering.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1027211 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/cluster/new-cluster-active-passive.txt39
1 files changed, 39 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/cluster/new-cluster-active-passive.txt b/qpid/cpp/src/qpid/cluster/new-cluster-active-passive.txt
new file mode 100644
index 0000000000..56618da83c
--- /dev/null
+++ b/qpid/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.