MySQL半同步复制-答疑解惑-master dump线程等待slave的ACK是死等吗

191 篇文章 87 订阅 ¥9.90 ¥99.00
123 篇文章 65 订阅 ¥19.90 ¥99.00

1、master dump线程在发送binlog后会等待slave的ACK。由repl_semi_after_send_event函数完成。这里等待是死等还是有超时时间限制呢?

调用情况:repl_semi_after_send_event->readSlaveReply->my_net_read->net_read_packet->net_read_packet_header->

net_read_raw_loop->vio_read_buffer->vio_read->vio_socket_io_wait->vio_io_wait(vio, event, timeout)->poll

这里的timeout值是vio->read_timeout。改值是由变量net_read_timeout控制,默认是30s。所以并不是死等,而是有超时时间的。

2、同样在slave IO线程中,也有等待接收binlog的函数。

handle_slave_io->read_event->cli_safe_read->my_net_read->net_read_packet->net_read_packet_header->

net_read_raw_loop->vio_read_buffer->vio_read->vio_socket_io_wait->vio_io_wait(vio, event, timeout)->poll

这里的timeout是由slave_net_timeout变量控制。在5.7.7版本之前默认是3600s,之后包括5.7.7默认值是60s

注:关于MySQL中的几个网络超时变量,可以参考下面文章进行学习

https://yq.aliyun.com/articles/86603

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzs87

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值