MySQL半同步复制--reserve_header

来源:互联网 发布:数据融合方法概论 编辑:程序博客网 时间:2024/06/06 20:52
mysql_binlog_send->reset_transmit_packet->RUN_HOOK(binlog_transmit, reserve_header, (thd, flags, packet))--

repl_semi_reserve_header

每次发送event前,如果是半同步都需要添加3个字节。

int ReplSemiSyncMaster::reserveSyncHeader(unsigned char *header,  unsigned long size){  const char *kWho = "ReplSemiSyncMaster::reserveSyncHeader";  function_enter(kWho);  int hlen=0;  //如果slave没有开启半同步,则不需要添加额外字节内容  if (!is_semi_sync_slave())  {    hlen= 0;  }  else  {    /* No enough space for the extra header, disable semi-sync master */    if (sizeof(kSyncHeader) > size)    {      disableMaster();      return 0;    }        /* Set the magic number and the sync status.  By default, no sync     * is required.     */    memcpy(header, kSyncHeader, sizeof(kSyncHeader));    hlen= sizeof(kSyncHeader);  }  return function_exit(kWho, hlen);}
用于在packet的头部预留字节,以维护和slave的交互信息,目前预留3字节
     ReplSemiSyncBase:kSyncHeader[2],这里为在packet头部拷贝2字节,
     固定值作为MAGIC NUMBER,只有slave开启semisync才会保留额外的
     packet头部比特位,不管master是否开启了semisync
     const unsigned char ReplSemiSyncBase::kPacketMagicNum = 0xef;
     const unsigned char ReplSemiSyncBase::kSyncHeader[2] ={ReplSemiSyncBase::kPacketMagicNum, 0};

阅读全文
'); })();
1 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 冬裙图片 冬裙搭配 半身冬裙 女人冬裙 冬裙怎么搭配 少女冬裙 女孩冬裙 红色冬裙 裙中裙 长款冬裙 冬裙配什么鞋子 半裙长裙 秋冬套装裙 孕妇冬裙 冬裙加厚 秋水伊人冬裙 无袖冬裙 冬裙 半身裙 冬裙包臀 大码连衣裙 新款 皮短裙 棉长裙 百褶裙 秋冬季连衣裙 女短裙秋冬 秋冬蓬蓬短裙 秋冬裙子款式 女童公主裙蓬蓬裙 秋冬短裙搭配 冬季短裙搭配 裙子秋冬 冬季短裙半身裙 40一50岁女装连衣冬裙 婚如冬阳 冬阳 季冬阳展颜 冬阳童年骆驼队 季冬阳和展颜番外怀孕 季冬阳和展颜新婚夜 冬阳碧水梅落 偷心原著季冬阳展颜结局