PXC之Certification-Based Replication

Certification-Based Replication是依靠群组通信(Group Communication)和全局有序事务(Global Ordering Transaction)来实现同步复制的。前端

Certification-based Replication实现要求

  • Transactional Database 数据库须要支持事务,对于未提交的修改能支持回滚操做数据库

  • Atomic Changes 全部数据同步操做都知足原子性,举例来讲,对于一组数据同步指令,要么都执行,要么都不执行blog

  • Global Ordering 全部数据同步指令都有一个全局惟一且递增的编号,也就是说在全部的节点上同步事件都是按照相同的顺序执行的排序

Certification-based Replication实现原理

Certification-based Replication时序图

  1. 当一个DML请求到达Server的时候,会按照传统DB的方式执行,直到客户端发送Commit请求,此Server会将全部更新操做和涉及记录的Primary Key归集到一个Write-Set中,而后将此Write-Set发送到集群中的全部Server节点(包括本身)。
  2. 对于事务发起Server来讲,若是校验有冲突,则回滚事务,并返回DeadLock/Conflictd到前端;若果校验没有冲突,则提交事物,并返回OK。
  3. 对于集群中的其它Server来讲,若是校验有冲突,则丢弃此Write-Set;若是校验没有冲突,则(等待)提交事物。

Write-Set冲突校验

冲突校验的前提是全局有序事务(Global Ordering Transaction),集群会为每个事务分配一个全局惟一且有序的编号,每一个节点都会将待处理事务按照此编号排序,此机制可确保全部节点都步调一致。 当一个事务到达Commit阶段的时候,节点会查询出此事务编号和上一次提交成功的事务编号之间的全部事务,检查区间内的全部事务与新事务是否存在主键冲突,存在冲突则校验不经过。事件

相关文章
相关标签/搜索