diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2011-05-24 17:38:14 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-05-24 17:38:14 +0100 |
| commit | ed518e836df619635776c4d93696e487d4a7a198 (patch) | |
| tree | cad4ddd92350d58c0995a31bca853ec6dce1e155 /docs/rabbitmqctl.1.xml | |
| parent | 06c3ac40bba9c60305612ea9fae8440892a19a00 (diff) | |
| download | rabbitmq-server-git-ed518e836df619635776c4d93696e487d4a7a198.tar.gz | |
Permit dropping nodes of mirrored queues. This turns out to be much much messier than I'd hoped as the principle problem becomes ensuring an add after a drop works. Normally, an add would only occur on a node that has not seen said queue before: if it had, in a previous lifetime, then the booting of rabbit would have ripped out any locally stored files regarding that queue. But now this step may be missed. Having tried many different approaches, the simplest became expanding bq so that the shutdown reason is exposed to the BQ. Thus both slave and master can then detect that they're being dropped, and, in the case of master, it can convert a bq:terminate to a bq:delete_and_terminate. Every other approach I could think of turned out worse.
Diffstat (limited to 'docs/rabbitmqctl.1.xml')
| -rw-r--r-- | docs/rabbitmqctl.1.xml | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/docs/rabbitmqctl.1.xml b/docs/rabbitmqctl.1.xml index 628691589b..908ca97372 100644 --- a/docs/rabbitmqctl.1.xml +++ b/docs/rabbitmqctl.1.xml @@ -1325,6 +1325,49 @@ </variablelist> </refsect2> + + <refsect2> + <title>Mirrored Queue Management</title> + <para> + Mirrored queues can have slaves dynamically added, and slaves + or the master dynamically dropped. Refer to the <ulink + url="http://www.rabbitmq.com/ha.html">High Availability + guide</ulink> for further details about mirrored queues in + general. + </para> + + <variablelist> + <varlistentry> + <term><cmdsynopsis><command>add_queue_mirror</command> <arg choice="req"><replaceable>queue_name</replaceable></arg> <arg choice="req"><replaceable>node</replaceable></arg></cmdsynopsis></term> + <listitem> + <para> + Attempts to add a mirror of the queue + <command>queue_name</command> on + <command>node</command>. This will only succeed if the + queue was declared a mirrored queue and if there is no + mirror of the queue already on the node. If it succeeds, + the new mirror will start off as an empty slave. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><cmdsynopsis><command>drop_queue_mirror</command> <arg choice="req"><replaceable>queue_name</replaceable></arg> <arg choice="req"><replaceable>node</replaceable></arg></cmdsynopsis></term> + <listitem> + <para> + Attempts to drop a mirror of the queue + <command>queue_name</command> on + <command>node</command>. This will only succeed if the + queue was declared a mirrored queue and if there is a + mirror of the queue already on the node. If the node + contains the master of the queue, a slave on some other + node will be promoted to become the new master. It is + not permitted to drop the only node of a mirrored-queue. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect2> </refsect1> </refentry> |
