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階段的時候,節點會查詢出此事務編號和上一次提交成功的事務編號之間的全部事務,檢查區間內的全部事務與新事務是否存在主鍵衝突,存在衝突則校驗不經過。事件

相關文章
相關標籤/搜索