8.事务在 Group Replication 中的处理流程

事务在 Group Replication 中的处理流程

事务处理流程详解

事务在 Group Replication 中的处理流程:

  1. 事务发起阶段

    • 事务在 node1 上发起
    • COMMIT 之前的所有操作都不会和其它节点交互
    • 多主模式下,Group Replication 使用的是乐观事务模型
  2. 提交阶段

    • 客户端发起 COMMIT 操作
    • 事务开始执行提交操作
  3. Binlog 处理阶段

    • 事务在生成 Binlog Cache 之后,写入 Binlog 之前,开始进入 Group Replication 的处理流程
  4. 消息传播阶段

    • Group Replication 会打包事务的相关信息,并通过 GCS 发送
    • GCS 是 Group Replication 的消息通信层,具体实现是 XCom
    • XCom 是基于 Paxos 实现的组通信引擎
  5. 冲突检测阶段

    • 当消息被大多数节点(包括自己)确认接受后,开始进行冲突检测
    • 每个节点都维护了一个冲突检测数据库,各个节点的冲突检测都是独立进行的
  6. 冲突检测结果处理

    • 如果没有通过冲突检测(冲突检测失败),则回滚事务
    • 如果通过了冲突检测,则提交事务
  7. 事务提交执行

    • 对于本地事务:直接写 Binlog 提交,然后反馈给客户端
    • 对于远程事务 :将 Binlog Event 写入到 Relay Log 中,再由 group_replication_applier 通道重放 Relay Log 中的事务

一致性说明

事务在传播阶段(基于 Paxos 协议)是强一致的,但在应用阶段(重放 Relay Log 中的事务)又是异步的,这也就是为什么说 MGR 是一个最终一致性的系统。

相关推荐
Fleshy数模10 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
az44yao11 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
秦老师Q12 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
橘子1313 小时前
MySQL用户管理(十三)
数据库·mysql
Dxy123931021613 小时前
MySQL如何加唯一索引
android·数据库·mysql
我真的是大笨蛋13 小时前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怣5013 小时前
MySQL数据检索入门:从零开始学SELECT查询
数据库·mysql
人道领域13 小时前
javaWeb从入门到进阶(SpringBoot事务管理及AOP)
java·数据库·mysql
千寻技术帮14 小时前
10404_基于Web的校园网络安全防御系统
网络·mysql·安全·web安全·springboot
spencer_tseng15 小时前
MySQL table backup
mysql