<!-- $Id: reshape.sgml,v 1.14 2005/02/22 17:37:59 darcyb Exp $ -->
<sect1 id="reshape"> <title>Reshaping a Cluster</title>

<para>If you rearrange the nodes so that they serve different
purposes, this will likely lead to the subscribers changing a bit.</para>

<para>This will require doing several things:
<itemizedlist>

<listitem><para> If you want a node that is a subscriber to become the
origin for a particular replication set, you will have to issue a
suitable <xref linkend="slonik"> <command>MOVE SET</command>
operation.</para></listitem>

<listitem><para> You may subsequently, or instead, wish to modify the
subscriptions of other nodes.  You might want to modify a node to get
its data from a different provider, or to change it to turn forwarding
on or off.  This can be accomplished by issuing the slonik <xref
linkend="stmtsubscribeset"> operation with the new subscription
information for the node; &slony1; will change the
configuration.</para></listitem>

<listitem><para> If the directions of data flows have changed, it is
doubtless appropriate to issue a set of <xref
linkend="stmtdroplisten"> operations to drop out obsolete paths
between nodes and <xref linkend="stmtstorelisten"> to add the new
ones.  At present, this is not changed automatically; at some point,
<xref linkend="stmtmoveset"> and <xref
linkend="stmtsubscribeset"> might change the paths as a side-effect.
See <xref linkend="listenpaths"> for more information about this.  In
version 1.1 and later, it is likely that the generation of <xref
linkend="table.sl-listen"> entries will be entirely automated, where
they will be regenerated when changes are made to <xref
linkend="table.sl-path"> or <xref linkend="table.sl-path">, thereby
making it unnecessary to even think about <xref
linkend="stmtstorelisten">.</para></listitem>

</itemizedlist>
</para>
<para> The <filename>altperl</filename> toolset includes a
<application>regenerate-listens</application> script that is up to
the task of creating the new <xref linkend="stmtstorelisten">
commands; it isn't, however, smart enough to know what listener paths
should be dropped.
</para>

</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:"book.sgml"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
