Skip to content

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.

Xtrabackup SST uses backup locks, which means the Galera provider is not paused at all as with earlier. The SST method can be configured using the wsrep_sst_method variable.

Note

If the gcs.sync_donor variable is set to Yes (default is No), the whole cluster will get blocked if the donor is blocked by SST.

Limitation

When configuring Percona XtraDB Cluster, your server must create a local socket. You can set up a socket by providing a path, or you can skip creating one explicitly. However, do not leave the variable in my.cnf empty, like this: socket=. If you do, the server won’t create a socket. State Snapshot Transfer (SST) requires the local socket for the following tasks:

  • Taking backup using Percona XtraBackup

  • Detecting keyring component status

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

For example:

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.

Other reading

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.


Last update: 2024-12-06