首页 > 代码库 > logical_clock 并发复制mysql5.7解决复制延迟问题
logical_clock 并发复制mysql5.7解决复制延迟问题
slave-parallel-type=LOGICAL_CLOCK ##默认database ,logical_clock可能还存在bug,5.7.19修复主从不一致bug
* Replication: In certain cases, the master could write to the binary log a last_committed value which was smaller than it should have been. This could cause the slave to execute in parallel transactions which should not have been, leading to inconsistencies or other errors. (Bug #84471, Bug #25379659) MySQL 5.7.19版本修复
slave-parallel-workers=4 # 根据并发度设置,如果不需要并发,设置为0,不要设置为1. 1的性能比0差。
以前的sql单线程变成4个线程 Waiting for an event from Coordinator
mysql> show processlist; +----+-------------+-----------+------+---------+--------+--------------------------------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+------+---------+--------+--------------------------------------------------------+------------------+ | 18 | system user | | NULL | Connect | 606530 | Slave has read all relay log; waiting for more updates | NULL | | 19 | system user | | NULL | Connect | 606593 | Waiting for an event from Coordinator | NULL | | 20 | system user | | NULL | Connect | 838818 | Waiting for an event from Coordinator | NULL | | 21 | system user | | NULL | Connect | 841404 | Waiting for an event from Coordinator | NULL | | 22 | system user | | NULL | Connect | 841404 | Waiting for an event from Coordinator | NULL | | 31 | system user | | NULL | Connect | 862799 | Waiting for master to send event | NULL | | 40 | root | localhost | NULL | Query | 0 | starting | show processlist | +----+-------------+-----------+------+---------+--------+--------------------------------------------------------+------------------+ 7 rows in set (0.06 sec)
并不是严格要求所有同时进入Prepare阶段的事务都在备库并发执行,因此一组提交的事务中可能存在不同的seq no
可以发现较之原来的二进制日志内容多了last_committed和sequence_number,last_committed表示事务提交的时候,
上次事务提交的编号,如果事务具有相同的last_committed,表示这些事务都在一组内,可以进行并行的回放。
#170623 22:27:43 server id 45 end_log_pos 2781491 CRC32 0x1dcd41fa GTID last_committed=816 sequence_number=817 #170623 22:27:43 server id 45 end_log_pos 2785022 CRC32 0x2d28e1b7 GTID last_committed=816 sequence_number=818
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
logical_clock 并发复制mysql5.7解决复制延迟问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。