[rabbitmq-discuss] Adding new nodes to a cluster

Sammy Yu temijun at gmail.com
Mon Oct 5 18:21:25 BST 2009

Hi Matthew,
   Thanks for the detailed explanation, it really clarifies things.
Is there an easy way to determine whether a node is running under ram
or disk mode?


On Mon, Oct 5, 2009 at 9:21 AM, Matthew Sackman <matthew at lshift.net> wrote:
> Hi Sammy,
> On Fri, Oct 02, 2009 at 12:56:21PM -0700, Sammy Yu wrote:
>>    I've getting my rabbitmq cluster setup.  I noticed in the
>> documentation there was reference to two different kinds of nodes, a
>> ram and disk node and it seems to infer that there can only be one ram
>> node and N disk nodes.  My understanding is that the ram node has no
>> persistent information about the other nodes whereas the disk node
>> does.  What's the reasoning behind the constraint and why is it it
>> necessary to have a ram node (I'm assuming there are some performance
>> implications)?
> You can have as many RAM nodes and you'd like and as many disk nodes as
> you'd like. In some versions of Rabbit, we've tried to enforce that you
> can't create a cluster only of RAM nodes, but in truth this is
> impossible to achieve so we've actually dropped all attempts to enforce
> this in v1.7.
> RAM nodes can go faster because their mnesia tables are only in memory,
> thus they do not have to wait for disks. However, although persistent
> messages will still be sent to disk on a RAM node, routing tables,
> and accountancy information for exchanges and queues is not held on
> disk. As such, should you create a cluster only of RAM nodes, durable
> queues and exchanges will not survive server restarts because although
> the messages will survive, there will be no entries in mnesia saying the
> exchange/queue ever existed.
> Thus having at least one disk node solves this because mnesia shares all
> information across all nodes in a cluster - thus the disk node will
> record everything necessary.
>> Also is it true that the output of the first node
>> listed in rabbitmqctl status is the ram node?  So given the following
>> output:
>>  {nodes,[rabbit at rabbit1,rabbit at rabbit2,rabbit at rabbit3]},
>> We can assume that rabbit1 is the ram node and rabbit2 and rabbit3 are
>> disk nodes.
> No. The output of rabbitmqctl status indicates every node that is in the
> cluster, and does not indicate which of the nodes are RAM nodes and
> which are disk nodes.
> Matthew

More information about the rabbitmq-discuss mailing list