content_image/664213.jpg
<img src='content_image/664213.jpg'>

For this to work, you must configure the MySQL instances as follows: 

•Source 1 is the primary source where all changes and updates are written to the database. Binary logging is enabled on both source servers, which is the default. 

•Source 2 is the replica to the server Source 1 that provides the replication functionality to the remainder of the replicas in the replication structure. Source 2 is the only machine permitted to connect to Source 1. Source 2 has the --log-slave-updates  option enabled (which is the default). With this option, replication instructions from Source 1 are also written to Source 2’s binary log so that they can then be replicated to the true replicas. 

•Replica 1, Replica 2, and Replica 3 act as replicas to Source 2, and replicate the information from Source 2, which actually consists of the upgrades logged on Source 1. 

The above solution reduces the client load and the network interface load on the primary source, which should improve the overall performance of the primary source when used as a direct database solution. 

If your replicas are having trouble keeping up with the replication process on the source, there are a number of options available: 

•If possible, put the relay logs and the data files on different physical drives. To do this, set the relay_log  system variable to specify the location of the relay log. 

•If heavy disk I/O activity for reads of the binary log file and relay log files is an issue, consider increasing the value of the rpl_read_size  system variable. This system variable controls the minimum amount of data read from the log files, and increasing it might reduce file reads and I/O stalls when the file data is not currently cached by the operating system. Note that a buffer the size of this value is allocated for each thread that reads from the binary log and relay log files, including dump threads on sources and coordinator threads on replicas. Setting a large value might therefore have an impact on memory consumption for servers. 

•If the replicas are significantly slower than the source, you may want to divide up the responsibility for replicating different databases to different replicas. See Section 17.4.6, “Replicating Different Databases to Different Replicas” . 

