组复制插件架构
MySQL Group Replication 是一个 MySQL 插件,它构建在现有 MySQL 复制基础架构之上,利用了二进制日志、基于行的日志记录和全局事务标识符等功能。它与当前的 MySQL 框架集成,例如性能模式或插件和服务基础设施。下图展示了 MySQL 组复制的整体架构框图。
图 20.6 组复制插件框图

MySQL 组复制插件包括一组用于捕获、应用和生命周期的 API,它们控制插件与 MySQL 服务器的交互方式。有一些接口可以使信息从服务器流向插件,反之亦然。这些接口将 MySQL Server 核心与组复制插件隔离开来,并且大部分是放置在事务执行管道中的钩子。在一个方向上,从服务器到插件,存在诸如服务器启动、服务器恢复、服务器准备好接受连接以及服务器即将提交事务等事件的通知。另一方面,插件指示服务器执行操作,例如提交或中止正在进行的事务,或在中继日志中对事务进行排队。
组复制插件架构的下一层是一组组件,它们在通知路由到它们时做出反应。捕获组件负责跟踪与正在执行的事务相关的上下文。应用程序组件负责在数据库上执行远程事务。恢复组件管理分布式恢复,并负责通过选择捐赠者、管理追赶过程并对捐赠者故障做出反应来使加入组的服务器保持最新状态。
继续沿着堆栈向下,复制协议模块包含复制协议的特定逻辑。它处理冲突检测,接收事务并将其传播到组。
组复制插件架构的最后两层是组通信系统 (GCS) API 和基于 Paxos 的组通信引擎 (XCom) 的实现。GCS API 是一个高级 API,它抽象了构建复制状态机所需的属性(请参见 第 20.1 节“组复制背景”)。因此,它将消息传递层的实现与插件的其余上层解耦。组通信引擎处理与复制组成员的通信。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




