MySQL:半同步(一)主库端初始化流程

作者简介:高鹏,笔名八怪。《深入理解MySQL主从原理》图书作者,同时运营个人公众号“MySQL学习”,持续分享遇到的有趣case以及代码解析!

源码版本 5.7.29 半同步部分一共分为4节,为2021年春节前夕学习,时间短主要用于后期确认问题。也希望对象熟悉半同步的朋友有所帮助。如果有误请谅解。

一、内部结构

1、全局变量
  • ReplSemiSyncMaster repl_semisync:半同步插件结构,全局变量。
  • Ack_receiver ack_receiver:ack_receiver全局变量。
2、ReplSemiSyncBase类

继承自Trace类 主要元素为

  static const unsigned char  kSyncHeader[2];     /* three byte packet header */        /* Constants in network packet header. */     static const unsigned char kPacketMagicNum;     static const unsigned char kPacketFlagSync;