<a href="https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html">https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html</a>
一句话概括:通过组提交的方式 master怎么并行,slave就怎么并行。
关键因素:组提交
一句话概括:解决单线程复制的延迟问题 note1:当master有多个线程在写数据,那么mts效果会非常好 note2:如果master对大表进行ddl,这样的延迟是没办法避免的
参数
comment
默认配置
推荐配置
调整方式
slave_parallel_workers
applier threads数量
16
dynamic
slave_parallel_type
并行方式
database
logical_clock
slave_preserve_commit_order
并行排序提交
1
master_info_repository
master_info持久化方式
file
static
relay_log_info_repository
relay_info持久化方式
relay_log_recovery
重新获取relay log
io thread并没有改变 sql thread 会变成coordinator线程 会新增很多work线程来受coordinator调度
同一个last_committed 可以并行执行 同一个last_committed 中的sequence_number 默认是无序的
当slave_preserve_commit_order=0时
没有办法保证顺序,在恢复的过程中会有问题,到时候你怎么start slave 呢? start slave until sql_after_mts_gaps ; reset slave
当slave_preserve_commit_order=1时
后一个sequence_number提交的时候,会等待前一个sequence_number完成。 waiting for preceding transaction to commit