- GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
- GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。
[toc]
本文简单介绍下MGR的整体技术架构概况,事务同步过程,事务认证机制等关键知识点。
1. MGR架构
再来看一遍MGR的架构图:

从上图可知,MGR工作时,主要涉及到以下三层:
- Server层:负责处理用户请求,接收用户事务,返回结果等。
- MGR处理层:接收来自Server层的事务请求,处理Paxos层返回消息。
- Paxos层:将所有消息进行全局排队,然后发送给MGR处理层。
MGR是以Plugin(插件)的方式集成到MySQL中,可以简单灵活部署,它在MySQL进行事务处理、Binlog传输和持久化等逻辑处理时,预埋了一些(Hook)钩子,在钩子上注册函数处理MGR相关逻辑。
以用户提交事务为例:
- 用户线程发出commit,请求提交事务,处在Server层。
- Server层调用MGR处理层,将事务信息通过Paxos层进行同步,用户线程等待。
- MGR处理层处理Paxos同步后的消息,唤醒用户线程,返回到Server层。
在上面的架构图中,可以看到有以下几个模块:
- Capture,负责跟踪本节点的事务。
- Applier,负责执行远程事务(在其他节点产生的事务)。
- Recovery,负责故障恢复时,选择donor节点,catch up binlog等。
- Replication Protocol Logics,消息封装、接收XCom返回的消息、发送本节点消息给XCom、事务认证(冲突检测)等。
- GCE,在GCS层具体实现XCom(XCom是eXtended COMmunications的缩写,是Paxos协议在MySQL里的具体实现,在有些文章中看到Paxos和XCom可以认为是同一个意思)。
MGR集群由DB1、DB2、DB3三个节点构成,则对于DB1来说,DB2、DB3上产生的事务就是远程事务,而DB1上产生的事务则是本地事务。

本文详细解读了MGR的架构,包括Server、MGR处理层和Paxos层,以及事务提交、认证过程,重点介绍了事务合法性判断、信息封装、冲突检测和事务数据库清理。了解MGR工作原理有助于高效部署和管理MySQL集群。
最低0.47元/天 解锁文章

1634

被折叠的 条评论
为什么被折叠?



