本文主要是介绍书生笔记-DUMP线程查找和过滤GTID的基本算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《深入理解MySQL主从原理32讲》-学习笔记
主库DUMP线程有几步需要比较GTID和GTID SET:
1,检查从库的GTID SET是否大于主库的GTID SET
2,根据主库的gtid_purged变量检查从库需要的event是否已经被清理
3,实际扫描的主库的binary log 检查从库需要的event是否已经被清理
4,进行GTID过滤,决定发送哪些事务给从库
之前讲的是功能,这一节介绍算法
比如从库出现b:1-95:97-100这种GTID SET的时候,如果要在主库查找是否有需要的event,是以b:1-95为准,也就是只要主库的b:96这个事务的event已经丢失则不能同步。
一,环境假设
这里看到了特殊的GTID SET:b:1-95:97-100,出现了GAP,这种情况是可能出现了,比如MTS异常宕机可能就出现gap,
二,检查从库的GTID是否大于主库的GTID
算法主要集中在gtid_set::is_subset_for_sid调用gtid_set::is_interval_subset函数中
大概过程如下:
1ÿ
这篇关于书生笔记-DUMP线程查找和过滤GTID的基本算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!