mysql复制相关源代码代码分布

slave.h/.cc

包括io线程及sql线程的实现,主要是slave高层次的管理逻辑,不包含如从网络dump数据,解析relay日志,格式化relay日志或者执行event的低级函数,但包含show slave status的执行过程等。

log.h/.cc

包含用于对event排序并写入binlog的高级日志机制。包含创建,写入以及删除binlog的逻辑,也包含binlog的部分回调函数。

log_event.h/.cc

包含Log_event类及其子类,用于所有event类型的创建,写入,输出以及作用方式,此处的读写都很低级,基本上都是对数据的序列化。

old_log_event.h/.cc

包含老版本row event的执行机制。

rpl_rli.h/.cc

Relay_log_info的数据结构实现,主要用于sql线程,同时也包含部分sql线程的方法(另一部分在slave.cc文件)

rpl_mi.h/.cc

Master_info的数据结构实现,主要用于IO线程,部分IO线程函数位于slave.cc。

sql_repl.cc

master的dump线程实现,主要用于把binlog发送到slave,也包含RESET SLAVE, CHANGE MASTER, RESET MASTER, SHOW BINLOG EVENTS, SHOW MASTER STATUS, SHOW BINARY LOGS, PURGE BINARY LOGS等命令的实现,也包含一些复制相关的参数设置。

sql_binlog.cc

BINLOG语句执行的实现。

rpl_record.h/.cc

编码及解码row模式下的row event格式的工具方法。

repl_failsafe.h/.cc

slave初始化及注册到master的实现。

replication.h

部分抽象类的定义,包括binlog的一部分接口。

rpl_constants.h

复制事件的枚举

rpl_filter.h/.cc

 --{binlog,replicate}-{do,ignore}-db, --replicate[-wild]-{do,ignore}-table,  --replicate-rewrite-db的实现。

rpl_handler.h/.cc

使用binlog的plugin的协调类。

rpl_injector.h/.cc

注入类,允许外部插入写入binlog,主要用于集群复制时候的binlog。

rpl_reporting.h/.cc

复制状态及错误的报告实现工具。

rpl_tblmap.h/.cc

用于生成row格式复制用table map的工具。

rpl_utility.h/.cc

Table_map_events的辅助类及方法,也包含部分其他工具。

sql_lex.h/.cc

标记不安全的语句。

转载于:https://my.oschina.net/llzx373/blog/282666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值