State snapshot transfer¶
State Snapshot Transfer (SST) is a full data copy from one node (donor) to the joining node (joiner). It’s used when a new node joins the cluster. In order to be synchronized with the cluster, the new node has to receive data from a node that is already part of the cluster.
Percona XtraDB Cluster enables via xtrabackup.
gcs.sync_donor variable is set to
Yes (default is
No), the whole cluster will get blocked if the donor is blocked by SST.
Choose the SST Donor¶
If there are no nodes available that can safely perform incremental state transfer (IST), the cluster defaults to SST.
If there are nodes available that can perform IST, the cluster prefers a local node over remote nodes to serve as the donor.
If there are no local nodes available that can perform IST, the cluster chooses a remote node to serve as the donor.
If there are several local and remote nodes that can perform IST,
the cluster chooses the node with the highest
seqno to serve as the donor.
Use Percona Xtrabackup¶
The default SST method is
xtrabackup-v2 which uses Percona XtraBackup.
This is the least blocking method that leverages backup locks.
XtraBackup is run locally on the donor node.
The datadir needs to be specified in the server configuration file
my.cnf, otherwise the transfer process will fail.
Detailed information on this method is provided in Percona XtraBackup SST Configuration documentation.
SST for tables with tablespaces that are not in the data directory¶
CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';
SST using Percona XtraBackup¶
XtraBackup will restore the table to the same location on the joiner node. If the target directory does not exist, it will be created. If the target file already exists, an error will be returned, because XtraBackup cannot clear tablespaces not in the data directory.