image.png
如果主库的日常并发量很大,而主从同步中还是单线程SQL来回放中继日志的话,就会导致从库持续跟不上主库,最终导致小时级别的主从延迟。

并发主从复制

image.png
原来的单线程sql_thread不再复制直接更新数据,而是变为coordinator协调者,只负责读取relaylog和分发事务给worker,由worker来执行真正的复制数据。
worker的线程数有slave_parallel_workers决定,从实际情况看,这个值不能设置太大,要给从库的读服务留出空闲资源。

并发主从复制的原则

coordinator在分发时,要满足:

  1. 不能造成更新覆盖。也就要求同一行的两个事务日志,必须分发到同一个worker中。
  2. 同一个事务的日志不能被拆开,必须放到同一个worker中。

    各版本并发主从复制

    按库复制
    按表复制
    按行复制