SLONIK_SUBSCRIBE_SET man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

SLONIK SUBSCRIBE SET(7)Configuration and Action commandSLONIK SUBSCRIBE SET(7)

NAME
       SUBSCRIBE SET - Start replication of Slony-I set

SYNOPSIS
       SUBSCRIBE SET (options);

DESCRIPTION
       This performs one of two actions:

       · Initiates replication for a replication set

	 Causes	 a  node  (subscriber)	to  start  replicating a set of tables
	 either from the origin or from	 another  provider  node,  which  must
	 itself already be be an active, forwarding subscriber.

	 The  application  tables  contained in the set must already exist and
	 should ideally be empty. The current  version	of  Slony-I  will  not
	 attempt  to  copy  the schema of the set. The replication daemon will
	 start copying the current content of the set from the given  provider
	 and  then try to catch up with any update activity that happened dur‐
	 ing that copy process. After successful subscription, the tables  are
	 guarded on the subscriber, using triggers, against accidental updates
	 by the application.

	 If the tables on the subscriber are not  empty,  then	the  COPY  SET
	 event	(which	is part of the subscription process) may wind up doing
	 more work than should be strictly necessary:

	 · It attempts to TRUNCATE the table, which will be efficient.

	 · If that fails (a foreign key relationship  might  prevent  TRUNCATE
	   from	 working), it uses DELETE to delete all ``old'' entries in the
	   table

	 · Those old entries clutter up the table until it  is	next  VACUUMed
	   after the subscription process is complete

	 · The indices for the table will contain entries for the old, deleted
	   entries, which will slow the process of inserting new entries  into
	   the index.

	 Warning:

	 This operation can take a (potentially distinctly) non-zero period of
	 time.	If you have a great deal  of  data  in	a  particular  set  of
	 tables,  it  may  take	 hours	or even (if ``a great deal'' indicates
	 ``tens or hundreds gigabytes of data'') possibly  multiple  days  for
	 this event to complete.

	 The SUBSCRIBE SET request will, nonetheless, return fairly much imme‐
	 diately, even though the work, being handled by the COPY  SET	event,
	 is  still in progress.	 If you need to set up subscriptions for a set
	 of cascading nodes, you will need to wait for each subscriber to com‐
	 plete	subscribing  before submitting requests for subscriptions that
	 use that node as a provider.

	  Slony-I: provider 2 is not an active forwarding node for replication set 1

	 In effect, such subscription  requests	 will  be  ignored  until  the
	 provider is ready.

       · Revising     subscription    information    for    already-subscribed
	 provider/receiver pair of nodes.

	 If   you   need   to	revise	 subscription	information   for    a
	 set,provider,receiver combination you must submit the new information
	 using this command, and the  new  configuration  will	be  propagated
	 throughout the replication network.  The normal reason to revise this
	 information is if you want to change the FORWARD status of a set on a
	 particular  receiver  node.   If you want to change the provider used
	 by a particular node you should use the  SLONIK  RESUBSCRIBE  NODE(7)
	 command.

	ID = ival
	 ID of the set to subscribe

	PROVIDER = ival
	 Node ID of the data provider from which this node draws data.

	RECEIVER = ival
	 Node ID of the new subscriber

	FORWARD = boolean
	 Flag  whether or not the new subscriber should store the log informa‐
	 tion during  replication  to  make  it	 possible  candidate  for  the
	 provider  role	 for  future nodes.  Any node that is intended to be a
	 candidate for FAILOVER must have FORWARD = yes.

	OMIT COPY = boolean
	 Flag whether or not the subscription process should  omit  doing  the
	 COPY  of  the	existing  data in the set.  In effect, use this option
	 indicates ``Trust me, the data is already in sync!''

	 This is notably useful for the following sorts of cases:

	 · Major inter-version upgrades (e.g.  - as from Slony-I 1.2  to  2.0)
	   may be done quickly.

	 · Cloning  a  ``master	 node''.  SLONIK CLONE PREPARE(7)/SLONIK CLONE
	   FINISH(7)

	 ·

EXAMPLE
       SUBSCRIBE SET (
	  ID = 1,
	  PROVIDER = 1,
	  RECEIVER = 3,
	  FORWARD = YES
       );
	 WAIT FOR EVENT(
	   ORIGIN=1,
	   CONFIRMED=ALL,
	   WAIT ON=1
       );

FORWARDING BEHAVIOUR
       The FORWARD=boolean flag indicates whether the  subscriber  will	 store
       log  information in tables sl_log_1 and sl_log_2.  Several implications
       fall from this...

       By storing the data in these tables on the subscriber,  there  is  some
       additional  processing burden.  If you are certain that you would never
       want to SLONIK MOVE SET(7) or SLONIK FAILOVER(7) to a  particular  sub‐
       scriber, it is worth considering turning off forwarding on that node.

       There is, however, a case where having forwarding turned off opens up a
       perhaps-unexpected failure condition; a rule of thumb  should  be  that
       all  nodes  that	 connect directly to the origin should have forwarding
       turned on.  Supposing one such  ``direct	 subscriber''  has  forwarding
       turned  off, it is possible for that node to be forcibly lost in a case
       of failover.  The problem comes if that node gets ahead of other nodes.

       Let's suppose that the origin, node 1 is at SYNC number 88901,  a  non-
       forwarding  node, node 2 has processed up to SYNC 88897, and other for‐
       warding nodes, 3, 4, and 5, have only processed data up to SYNC	88895.
       At  that moment, the disk system on the origin node catches fire.  Node
       2 has the data up to SYNC 88897, but there is no	 remaining  node  that
       contains,  in sl_log_1 or sl_log_2, the data for SYNCs 88896 and 88897,
       so there is no way to bring nodes 3-5 up to that point.

       At that point, there are only two choices:  To  drop  node  2,  because
       there  is  no  way to continue managing it, or to drop all nodes but 2,
       because there is no way to bring them up to SYNC 88897.

       That dilemma may be avoided by making sure that all nodes directly sub‐
       scribing to the origin have forwarding turned on.

DANGEROUS/UNINTUITIVE BEHAVIOUR
       · The  fact  that  the request returns immediately even though the sub‐
	 scription may take considerable time to complete may be  a  bit  sur‐
	 prising.

	 Processing   of  the  subscription  involves  two  events;  the  SUB‐
	 SCRIBE_SET, initiated on the set origin node, and an ENABLE_SUBSCRIP‐
	 TION.	 This means that SLONIK WAIT FOR EVENT(7) must be used follow‐
	 ing a SUBSCRIBE SET to wait until the last event on  the  set	origin
	 completes.

       · This command has two purposes; setting up subscriptions (which should
	 be unsurprising) and revising subscriptions, which isn't  so  obvious
	 to intuition.

       · New subscriptions are set up by using DELETE or TRUNCATE to empty the
	 table on a subscriber.	 If you created a new  node  by	 copying  data
	 from  an  existing  node,  it might ``seem intuitive'' that that data
	 should be kept; that is not the case - the former contents  are  dis‐
	 carded and the node is populated from scratch.

       · The  OMIT COPY option has the potential to be a large ``foot gun'' in
	 that it allows the administrator to  push  replication	 sets  out  of
	 sync.

LOCKING BEHAVIOUR
       This  operation	does  not  require acquiring any locks on the provider
       node.

       On the subscriber node, it will have the effect of locking every	 table
       in  the replication set.	 In version 1.2 and later, exclusive locks are
       acquired at the beginning of the process.

SLONIK EVENT CONFIRMATION BEHAVIOUR
       Slonik waits until the provider has confirmed all outstanding  configu‐
       ration  events  from  any  other node before contacting the provider to
       determine the set origin.  Slonik then waits for the command  submitted
       to the previous event node to be confirmed on the origin before submit‐
       ting this command to the origin.

VERSION INFORMATION
       This command was introduced in Slony-I 1.0

       The OMIT COPY option was introduced in Slony-I 2.0.3.

       In Slony-I 2.0.5 the SUBSCRIBE  SET  command  gets  submitted  directly
       against the set origin. Prior to this change the SUBSCRIBE SET was sub‐
       mitted against the provider

       Prior to Slony-I 2.2.0 the SUBSCRIBE  SET  command  could  be  used  to
       change  the  provider  of  an already subscribed node.  As of 2.2.0 the
       SLONIK RESUBSCRIBE NODE(7) command must be used.

				18 January 2015	       SLONIK SUBSCRIBE SET(7)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net