DragonFly On-Line Manual Pages
SLONIK LOCK SET(7) Configuration and Action commands SLONIK LOCK SET(7)
NAME
LOCK SET - Guard Slony-I replication set to prepare for MOVE SET
SYNOPSIS
LOCK SET (options);
DESCRIPTION
Guards a replication set against client application updates in
preparation for a SLONIK MOVE SET(7) command.
This command must be the first in a possible statement group (try).
The reason for this is that it needs to commit the changes made to the
tables (adding a special trigger function) before it can wait for every
concurrent transaction to finish. At the same time it cannot hold an
open transaction to the same database itself since this would result in
blocking itself forever.
Note that this is a locking operation, which means that it can get
stuck behind other database activity.
The operation waits for transaction IDs to advance in order that data
is not missed on the new origin. Thus, if you have long-running
transactions running on the source node, this operation will wait for
those transactions to complete. Unfortunately, if you have another
database on the same postmaster as the origin node, long running
transactions on that database will also be considered even though they
are essentially independent.
ID = ival
ID of the set to lock
ORIGIN = ival
Node ID of the current set origin
This uses lockset(integer).
EXAMPLE
LOCK SET (
ID = 1,
ORIGIN = 3
);
LOCKING BEHAVIOUR
Exclusive locks on each replicated table will be taken out on the
origin node, and triggers are added to each such table that reject
table updates.
SLONIK EVENT CONFIRMATION BEHAVIOUR
Slonik does not wait for event confirmations before performing this
command.
VERSION INFORMATION
This command was introduced in Slony-I 1.0
18 January 2015 SLONIK LOCK SET(7)