Jan Wieck JanWieck
Wed Nov 10 16:13:48 PST 2004
On 11/10/2004 10:04 AM, Stefan Kruger wrote:
> If I have a node x subscribing a set from node y for a while, and then
> unsubscribing it, followed by a later resubsciption to the same set, 
> according to the documentation means:
> 
> 'Resubscribing an unsubscribed set requires a complete fresh copy of 
> data from the provider to be transferred since the tables have been 
> subject to possible independent modifications.'
> 
> My question is: how is this done -- is it a single transaction for the 
> lot, or is the remaining data prior to resubscription wiped first, and 
> then trickle-fed until the replication has caught up?

It is done in one transaction for DELETEing all rows for all tables and 
COPYing the new snapshot over to the (re)subscriber. From there, the 
regular catchup takes place.

Thus, a client application would see the subscriber "jump" all of the 
sudden to a new status and then catch up the rest of the way. It will 
never see an entirely empty database, if that's what you where worried 
about.

If that isn't what you had in mind, you might want to manually truncate 
all replicated tables on the subscriber before resubscribing, because 
otherwise it will inflate during this to double its normal size and you 
need a full vacuum later to shrink it back down.


Jan

-- 
#======================================================================#
# 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-general mailing list