前言
在MySQL的binlog中,一个事务一般由多个binlog events组成。在复制(或者崩溃恢复)等场景中,为了保证数据的一致性,需要根据当前已经存在binlog中的event来判断事务的完整性,以决定复制的位置(或者是否需要truncate不完整的事务)。MySQL 5.7开始,引入了类Transaction_boundary_parser来对一个完整事务做边界的判断。事务边界判断的源代码包含在sql/rpl_trx_boundary_parser.h(cc)两个文件中,以下内容是相关源码的分析。