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(heade