分别是什么?
介绍冲突检测实现原理之前,先介绍一下广播信息 transaction message、冲突检测内存 certification info 的结构组成。
(1) transaction message
如图 8 所示,transaction message 保存是事务 T1 要更新行的的相关信息,有 transaction_context_log_event 和 gtid_log_event 及 log_event_group 三部分组成。
具体组成:write set 叫写入集合,是事务更新行相关信息的 Hash 值。write set=Hash(库名+表名+主键(唯一键)字段信息)
gtid_executed 为已经执行过的事务 gtid 集合,也即事务快照版本。
把 write set 和 gtid_executed 打包成为事务上下文信息,transaction_context_log_event。
gtid_log_event为已经执行过的事务 gtid 集合。
log_event_group 为事务日志信息,后续要更新到 relay log 中。
把 3 和 4 和 5 一起打包成为 transaction message 广播给其它节点。
图 8:广播信息的内容结构
(2) certification info
广播的信息到达冲突检测模块 certification 之后是如何工作?
每个节点都有一个 certification info 的内存结构,certification info 保存了通过冲突检测的事务的 write set 和 gtid_executed。
certification info 相当于一个 map&#