引 言php
本文是由爱可生研发团队出品的「图解MySQL」系列文章,不按期更新,但篇篇精品。html
爱可生开源社区持续运营维护的小目标:mysql
欢迎你们持续关注~git
本文分析的缺陷是MySQL bug#89370,其主要的现象是:配置半同步(复制)到多个从库,部分从库在一段时间内没法复制数据,但全部复制状态均正常。github
缺陷的复现算法
MySQL版本:5.7.16,5.7.17,5.7.21sql
能够观察到步骤4中重启的那个slave长达数分钟不会有master的复制数据流入,但查看复制状态均正常。缓存
缺陷的原理图解并发
图一:描述了半同步复制的大体流程异步
binlog group commit分为三个阶段:
半同步插件:
图二:描述了MySQL 5.6版本中的ACK接收机制
图三:描述了MySQL 5.7版本中的ACK接收机制
图四:描述了本文缺陷的发生缘由
扩展阅读
| MySQL分布式中间件使用指南
DBLE系列公开课第一课 DBLE概述
DBLE系列公开课第二课 DBLE的配置及使用
MyCat的坑如何在分布式中间件DBLE上改善(内含视频连接)
| DBLE 快速入门
深度分析 | MyCat与DBLE的对比性能调优
开源分布式中间件 DBLE 快速入门指南
DBLE 自定义拆分算法
DBLE Server.xml 配置解析
DBLE Schema.xml 配置解析
DBLE rule.xml 配置解析
| MySQL深度分析
MGR相同GTID产生不一样transaction故障分析
DBLE和Mycat跨分片查询结果不一致案例分析
基于Xtrabackup及可传输表空间实现多源数据恢复
[缺陷分析] Table cache 致使 MySQL 崩溃
开源分布式中间件DBLE
社区官网: https://opensource.actionsky.com/
GitHub主页: https://github.com/actiontech/dble
技术交流群:669663113
开源数据传输中间件DTLE
社区官网: https://opensource.actionsky.com/
GitHub主页: https://github.com/actiontech/dtle
技术交流群:852990221