引 言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