Jan Wieck JanWieck at Yahoo.com
Mon Jan 21 12:28:25 PST 2008
On 1/21/2008 2:27 PM, Chris Browne wrote:
> Update of /home/cvsd/slony1/slony1-engine/doc/adminguide
> In directory main.slony.info:/tmp/cvs-serv29342/doc/adminguide

You probably want to add some very important detail information to that.

It is very essential that the slonik script not only does a "wait for 
event" for the original "clone prepare". But it also must issue a "sync" 
on every existing node other than the provider and wait at least until 
all those sync events have been confirmed by the provider. Otherwise it 
is possible for the clone to miss some events.


Jan


> 
> Modified Files:
> 	slonik_ref.sgml 
> Log Message:
> Add basic documentation, release notes on CLONE PREPARE/CLONE FINISH
> 
> 
> Index: slonik_ref.sgml
> ===================================================================
> RCS file: /home/cvsd/slony1/slony1-engine/doc/adminguide/slonik_ref.sgml,v
> retrieving revision 1.76
> retrieving revision 1.77
> diff -C2 -d -r1.76 -r1.77
> *** slonik_ref.sgml	20 Dec 2007 00:56:46 -0000	1.76
> --- slonik_ref.sgml	21 Jan 2008 19:27:37 -0000	1.77
> ***************
> *** 2649,2655 ****
>      <refsect1> <title> Locking Behaviour </title>
>   
> !     <para> Each replicated table receives an exclusive lock, on the
> !     origin node, in order to remove the replication triggers; after
> !     the DDL script completes, those locks will be cleared. </para>
>   
>       <para> After the DDL script has run on the origin node, it will
> --- 2649,2656 ----
>      <refsect1> <title> Locking Behaviour </title>
>   
> !     <para> Up until the 2.0 branch, each replicated table received an
> !     exclusive lock, on the origin node, in order to remove the
> !     replication triggers; after the DDL script completes, those locks
> !     will be cleared. </para>
>   
>       <para> After the DDL script has run on the origin node, it will
> ***************
> *** 2659,2662 ****
> --- 2660,2670 ----
>       turn. </para>
>   
> +     <para> As of the 2.0 branch, &slony1; uses a GUC that controls
> +     trigger behaviour, which allows deactivating the &slony1;-created
> +     triggers during this operation <emphasis>without</emphasis> the
> +     need to take out exclusive locks on all tables.  Now, the only
> +     tables requiring exclusive locks are those tables that are
> +     actually altered as a part of the DDL script. </para>
> + 
>      </refsect1>
>      <refsect1> <title> Version Information </title>
> ***************
> *** 2994,2997 ****
> --- 3002,3082 ----
>     </Refentry>
>   
> + 
> +   <refentry id ="stmtcloneprepare"><refmeta><refentrytitle>CLONE PREPARE</refentrytitle>
> +    <manvolnum>7</manvolnum></refmeta>
> +    
> +    <refnamediv><refname>CLONE PREPARE</refname>
> +     
> +     <refpurpose> Prepare for cloning a node. </refpurpose>
> +    </refnamediv>
> +    <refsynopsisdiv>
> +     <cmdsynopsis>
> +      <command>clone prepare </command>
> +      <arg><replaceable class="parameter"> id</replaceable></arg>
> +      <arg><replaceable class="parameter"> provider</replaceable></arg>
> +      <arg><replaceable class="parameter"> comment</replaceable></arg>
> +     </cmdsynopsis>
> +    </refsynopsisdiv>
> +    <refsect1>
> +     <title>Description</title>
> +     <para>
> +      Prepares for cloning a specified node.
> +     </para>
> + 
> +     <para>
> +      This duplicates the <quote>provider</quote> node's configuration
> +      under a new node ID in preparation for the node to be copied via
> +      standard database tools.
> +     </para>
> +    </Refsect1>
> +    <Refsect1><Title>Example</Title>
> +     <Programlisting>
> +      clone prepare (id = 33, provider = 22, comment='Clone 33');
> +     </Programlisting>
> +    </Refsect1>
> +    <refsect1> <title> Version Information </title>
> +     <para> This command was introduced in &slony1; 1.2.0. </para>
> +    </refsect1>
> +   </Refentry>
> + 
> + 
> +   <refentry id ="stmtclonefinish"><refmeta><refentrytitle>CLONE FINISH</refentrytitle>
> +    <manvolnum>7</manvolnum></refmeta>
> +    
> +    <refnamediv><refname>CLONE FINISH</refname>
> +     
> +     <refpurpose> Complete cloning a node. </refpurpose>
> +    </refnamediv>
> +    <refsynopsisdiv>
> +     <cmdsynopsis>
> +      <command>clone prepare </command>
> +      <arg><replaceable class="parameter"> id</replaceable></arg>
> +      <arg><replaceable class="parameter"> provider</replaceable></arg>
> +     </cmdsynopsis>
> +    </refsynopsisdiv>
> +    <refsect1>
> +     <title>Description</title>
> +     <para>
> +      Finishes cloning a specified node.
> +     </para>
> + 
> +     <para>
> +      This completes the work done by <xref
> +      linkend="stmtcloneprepare">, establishing confirmation data for
> +      the new <quote>clone</quote> based on the status found for the
> +      <quote>provider</quote> node.
> +     </para>
> +    </Refsect1>
> +    <Refsect1><Title>Example</Title>
> +     <Programlisting>
> +      clone finish (id = 33, provider = 22);
> +     </Programlisting>
> +    </Refsect1>
> +    <refsect1> <title> Version Information </title>
> +     <para> This command was introduced in &slony1; 1.2.0. </para>
> +    </refsect1>
> +   </Refentry>
> + 
> + 
>    </reference>
>   <!-- Keep this comment at the end of the file
> 
> _______________________________________________
> Slony1-commit mailing list
> Slony1-commit at lists.slony.info
> http://lists.slony.info/mailman/listinfo/slony1-commit


-- 
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck at Yahoo.com #


More information about the Slony1-hackers mailing list