PolarDB分布式版在PolarDB分布式版叢集中,儲存節點(DN)被獨立出來作為集中式形態,並完全相容單機資料庫形態(100%相容MySQL 5.7、8.0)。當業務增長到需要進行分布式擴充時,架構可以原地升級為分布式形態,分布式組件能夠無縫對接至原有的儲存節點,既無需進行資料移轉,也不需要對應用側進行改造,從而即可享受分布式所帶來的可用性與擴充性。

集中式(標準版)

儲存節點 (Data Node,DN)

負責資料的持久化,基於多數派Paxos共識協議提供高可靠和強一致保障,同時自研Lizard分散式交易引擎系統,相比於原生MySQL分布式引擎,具有更可靠的高可用和35%左右的效能提升。

資料多副本架構

為了保證副本間的強一致性(RPO=0),採用多數派Paxos共識協議,每次寫入都要獲得超過半數節點的確認,即便其中1個節點宕機,叢集也仍然能正常提供服務。Paxos演算法能夠保證副本間的強一致性,徹底解決副本不一致問題。副本可細分為以下角色:

Leader

領導者,負責處理用戶端的請求並進行決策,Leader需要維護日誌,以保證資料的一致性和可恢複性。

Follower

跟隨者,接受Leader的指令並進行執行,當Leader宕機或無法被訪問時可以通過競選成為新的Leader。

Logger

日誌者,與Follower角色類似,僅提供多數派協議服務,但不提供資料服務。當Leader宕機或無法被訪問時,會參與Leader的競選投票,短時間內有可能會被選舉為Leader,但不會提供資料服務,等待其餘多數派Follower角色完成協議日誌追平後,Logger會主動讓出Leader。

Learner

學習者,只能被動接收系統狀態資訊,不能參與投票和決策,可以避免對系統的影響。

分布式(企業版)

中繼資料服務(Global Meta Service,GMS)

負責維護全域強一致的Table/Schema、Statistic等系統Meta資訊,以及維護帳號和許可權等安全資訊,同時提供全域時間戳記服務(TSO)。

計算節點(Compute Node,CN)

計算節點是系統的入口。採用無狀態設計,包括SQL解析器、最佳化器、執行器等模組。負責資料的分布式路由、計算及動態調度。解決分散式交易的兩階段交易認可(Two-phase Commit Protocol,簡稱2PC)協調、分布式DDL執行以及全域索引維護等問題,並提供三權分立等企業級特性。

儲存節點 (Data Node,DN)

負責資料的持久化(面向行存資料),基於多數派Paxos共識協議提供高可靠和強一致保障,同時通過多版本並發控制(MVCC)維護分散式交易的可見度。此外,還提供計算下推能力,以滿足分布式環境中的計算下推要求(比如Project、Filter、Join、Agg等下推計算)。

列存節點(Columnar)

提供持久化的列存索引,基於Object Storage Service構建列存索引,即時消費分散式交易的Binlog日誌,以滿足即時更新的需求。同時,結合計算節點可提供列存的快照一致性查詢能力。

日誌節點(Change Data Capture,CDC)

提供與MySQL Binlog格式和協議完全相容的增量訂閱能力,並具備相容MySQL Replication協議的主從複製能力。