Replication Threads the character set used for these is always UTF-8. Although you are generally free to use any name for channels, the following names are reserved: The name you choose for a replication channel also influences the file names used by a multi-source replica. The relay log files and index files for each channel are named relay_log_basename - channel .xxxxxx , where  relay_log_basename  is a base name specified using the  relay_log  system variable, and  channel  is the name of the channel logged to this file. If you do not specify the  relay_log  system variable, a default file name is used that also includes the name of the channel. • group_replication_applier • group_replication_recovery • Binary log dump thread.   The source creates a thread to send the binary log contents to a replica when the replica connects. This thread can be identified in the output of  SHOW PROCESSLIST  on the source as the  Binlog Dump  thread. • Replication I/O thread.   When a  START REPLICA | SLAVE  statement is issued on a replica server, the replica creates an I/O thread, which connects to the source and asks it to send the updates recorded in its binary logs. • Replication SQL thread.   The replica creates an SQL thread to read the relay log that is written by the replication I/O thread and execute the transactions contained in it. 17.2.3 Replication Threads MySQL replication capabilities are implemented using three main threads, one on the source server and two on the replica: The binary log dump thread acquires a lock on the source’s binary log for reading each event that is to be sent to the replica. As soon as the event has been read, the lock is released, even before the event is sent to the replica. The replication I/O thread reads the updates that the source’s  Binlog Dump  thread sends (see previous item) and copies them to local files that comprise the replica’s relay log. The state of this thread is shown as  Slave_IO_running  in the output of  SHOW SLAVE STATUS . There are three main threads for each source/replica connection. A source that has multiple replicas creates one binary log dump thread for each currently connected replica, and each replica has its own replication I/O and SQL threads. A replica uses two threads to separate reading updates from the source and executing them into independent tasks. Thus, the task of reading transactions is not slowed down if the process of applying them is slow. For example, if the replica server has not been running for a while, its I/O thread can quickly fetch all the binary log contents from the source when the replica starts, even if the SQL thread lags far behind. If the replica stops before the SQL thread has executed all the fetched statements, the I/O thread has at least fetched everything so that a safe copy of the transactions is stored locally in the replica’s relay logs, ready for execution the next time that the replica starts. You can enable further parallelization for tasks on a replica by setting the  slave_parallel_workers system variable to a value greater than 0 (the default). When this system variable is set, the replica creates the specified number of worker threads to apply transactions, plus a coordinator thread to manage them. If you are using multiple replication channels, each channel has this number of threads. A replica with slave_parallel_workers  set to a value greater than 0 is called a multithreaded replica. With this setup, transactions that fail can be retried. 3596