summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-04-10 13:05:36 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2011-04-10 13:05:36 +0100
commit418af6d6efdcc791a8f5a308badcaab0808f3c3f (patch)
tree55bb0187309af0a1c8cb43f4a175a6e10d381b83
parent700c770bfd458bb63bc1ade77c2ce4a3f6bb3811 (diff)
downloadrabbitmq-server-git-418af6d6efdcc791a8f5a308badcaab0808f3c3f.tar.gz
Work on documentation of ha
-rw-r--r--src/rabbit_mirror_queue_coordinator.erl11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/rabbit_mirror_queue_coordinator.erl b/src/rabbit_mirror_queue_coordinator.erl
index 7e521e4997..05e4a808ca 100644
--- a/src/rabbit_mirror_queue_coordinator.erl
+++ b/src/rabbit_mirror_queue_coordinator.erl
@@ -210,6 +210,17 @@
%% master). To do this bit properly would require 2PC and all the
%% baggage that goes with that.
%%
+%% Recovery of mirrored queues is straightforward: as nodes die, the
+%% remaining nodes record this, and eventually a situation is reached
+%% in which only one node is alive, which is the master. This is the
+%% only node which, upon recovery, will resurrect a mirrored queue:
+%% nodes which die and then rejoin as a slave will start off empty as
+%% if they have no mirrored content at all. This is not surprising: to
+%% achieve anything more sophisticated would require the master and
+%% recovering slave to be able to check to see whether they agree on
+%% the last seen state of the queue: checking length alone is not
+%% sufficient in this case.
+%%
%%----------------------------------------------------------------------------
start_link(Queue, GM) ->