MySQL半同步复制--RUN_HOOK

191 篇文章 87 订阅 ¥9.90 ¥99.00
123 篇文章 65 订阅 ¥19.90 ¥99.00
本文探讨了MySQL半同步复制中的RUN_HOOK机制,它作为代码中的观察者模式实现,允许在特定点插入自定义行为。RUN_HOOK在binlog_relay_io_delegate->thread_start(thd, mi)调用中发挥作用,实际执行的是repl_semi_slave_io_start函数,完成了插件的调用流程。" 90489570,7880676,Python数据结构详解:列表、元组、字典与集合,"['python基础语法', 'python数据结构', '列表list元组tuple', '集合set字典dict', '区别总结']
摘要由CSDN通过智能技术生成

半同步复制只是一个插件,一个动态加载的插件怎么实现事务处理线程等待、停下来呢?

这个插件只是个实现体,在MySQL源码中还是需要支撑这个实现体的框架。即在代码的某些位置,加入一些桩observer,在执行到这些桩的时候,如果有插件在这些observer中注册了实现体,就这执行这些实现体,否则什么也不执行。

RUN_HOOK就是这些桩的调用接口:

#define RUN_HOOK(group, hook, args)  (group ##_delegate->is_empty() ? 0 : group ##_delegate->hook args)
以RUN_HOOK(binlog_relay_io, thread_start, (thd, mi))为例:

binlog_relay_io_delegate->thread_start(thd,mi)是RUN_HOOK转换后的调用。

int Binlog_relay_IO_delegate::thread_start(THD *thd, Master_info *mi)
{
  Binlog_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yzs87

你的鼓励是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值