首页 > 数据库 > 文库 > 正文

5.7版本 Semisync Replication 加强

2022-08-03 16:44:59
字体:
来源:转载
供稿:网友
        5.7版本 Semisync Replication 加强:

一 前言
      前文 介绍了5.5/5.6 版本的MySQL semi sync 基础原理和配置,随着MySQL 5.7 的发布,新版本的MySQL修复了semi sync 的一些bug 并且增强了功能。
      支持发送binlog和接受ack的异步化;
      支持在事务commit前等待ACK;
      在server层判断备库是否要求半同步以减少Plugin锁冲突;
      解除binlog dump线程和lock_log的冲突等等。
 
二 优化
1 支持发送binlog和接受ack的异步化
通过前面的介绍,我们知道Semisynchronous Replication模式下,app在主库上提交一个事务/event,MySQL将每个事务写入binary并且同步到到slave ,master会等待至少一个slave通知:slave 已经接收到传过来的events并写入relay log,才返回给回话层 写入成功,或者直到传送日志发生超时,系统自动将为异步复制模式。
整体流程的逻辑图
 
2 支持在事务commit前等待ACK;
   新版本的semi sync 增加了rpl_semi_sync_master_wait_point参数 来控制半同步模式下 主库在返回给会话事务成功之前提交事务的方式。
 
三 推荐阅读
注:最后三个来自于MySQL replication 开发小组的blog,需要翻墙,请自备梯子。
[1] 5.7 Semisynchronous Replication
[2]   faster-semisync-replication
修改原来有dump thread 发送event和接收slave ack 模式,独立出 单独 接收slave 返回 ack的进程,提高半同步模式的tps 。

(编辑:错新网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选