PolarDB-X云原生分布式數(shù)據(jù)庫系統(tǒng)
PolarDB-X 是一款面向超高并發(fā)、海量存儲、復(fù)雜查詢場景設(shè)計的云原生分布式數(shù)據(jù)庫系統(tǒng)。其采用 Shared-nothing 與存儲計算分離架構(gòu),支持水平擴(kuò)展、分布式事務(wù)、混合負(fù)載等能力,具備企業(yè)級、云原生、高可用、高度兼容 MySQL 系統(tǒng)及生態(tài)等特點。
PolarDB-X 最初為解決阿里巴巴天貓“雙十一”核心交易系統(tǒng)數(shù)據(jù)庫擴(kuò)展性瓶頸而生,之后伴隨阿里云一路成長,是一款經(jīng)過多種核心業(yè)務(wù)場景驗證的、成熟穩(wěn)定的數(shù)據(jù)庫系統(tǒng)。 PolarDB-X 的核心特性如下:
- 水平擴(kuò)展
PolarDB-X 采用 Shared-nothing 架構(gòu)進(jìn)行設(shè)計,支持多種 Hash 和 Range 數(shù)據(jù)拆分算法,通過隱式主鍵拆分和數(shù)據(jù)分片動態(tài)調(diào)度,實現(xiàn)系統(tǒng)的透明水平擴(kuò)展。
- 分布式事務(wù)
PolarDB-X 采用 MVCC + TSO 方案及 2PC 協(xié)議實現(xiàn)分布式事務(wù)。事務(wù)滿足 ACID 特性,支持 RC/RR 隔離級別,并通過一階段提交、只讀事務(wù)、異步提交等優(yōu)化實現(xiàn)事務(wù)的高性能。
- 混合負(fù)載
PolarDB-X 通過原生 MPP 能力實現(xiàn)對分析型查詢的支持,通過 CPU quota 約束、內(nèi)存池化、存儲資源分離等實現(xiàn)了 OLTP 與 OLAP 流量的強(qiáng)隔離。
- 企業(yè)級
PolarDB-X 為企業(yè)場景設(shè)計了諸多內(nèi)核能力,例如 SQL 限流、SQL Advisor、TDE、三權(quán)分立、Flashback Query 等。
- 云原生
PolarDB-X 在阿里云上有多年的云原生實踐,支持通過 K8S Operator 管理集群資源,支持公有云、混合云、專有云等多種形態(tài)進(jìn)行部署,并支持國產(chǎn)化操作系統(tǒng)和芯片。
- 高可用
通過多數(shù)派 Paxos 協(xié)議實現(xiàn)數(shù)據(jù)強(qiáng)一致,支持兩地三中心、三地五副本等多種容災(zāi)方式,同時通過 Table Group、Geo-locality 等提高系統(tǒng)可用性。
- 兼容 MySQL 系統(tǒng)及生態(tài)
PolarDB-X 的目標(biāo)是完全兼容 MySQL ,目前兼容的內(nèi)容包括 MySQL 協(xié)議、MySQL 大部分語法、Collation、事務(wù)隔離級別、Binlog 等。
架構(gòu):
PolarDB-X 采用 Shared-nothing 與存儲分離計算架構(gòu)進(jìn)行設(shè)計,系統(tǒng)由4個核心組件組成。
- 計算節(jié)點(CN, Compute Node)
計算節(jié)點是系統(tǒng)的入口,采用無狀態(tài)設(shè)計,包括 SQL 解析器、優(yōu)化器、執(zhí)行器等模塊。負(fù)責(zé)數(shù)據(jù)分布式路由、計算及動態(tài)調(diào)度,負(fù)責(zé)分布式事務(wù) 2PC 協(xié)調(diào)、全局二級索引維護(hù)等,同時提供 SQL 限流、三權(quán)分立等企業(yè)級特性。
- 存儲節(jié)點(DN, Data Node)
存儲節(jié)點負(fù)責(zé)數(shù)據(jù)的持久化,基于多數(shù)派 Paxos 協(xié)議提供數(shù)據(jù)高可靠、強(qiáng)一致保障,同時通過 MVCC 維護(hù)分布式事務(wù)可見性。
- 元數(shù)據(jù)服務(wù)(GMS, Global Meta Service)
元數(shù)據(jù)服務(wù)負(fù)責(zé)維護(hù)全局強(qiáng)一致的 Table/Schema, Statistics 等系統(tǒng) Meta 信息,維護(hù)賬號、權(quán)限等安全信息,同時提供全局授時服務(wù)(即 TSO)。
- 日志節(jié)點(CDC, Change Data Capture)
日志節(jié)點提供完全兼容 MySQL Binlog 格式和協(xié)議的增量訂閱能力,提供兼容 MySQL Replication 協(xié)議的主從復(fù)制能力。
PolarDB-X 提供通過 K8S Operator 方式管理以上4個組件,同時計算節(jié)點與存儲節(jié)點之間可通過私有協(xié)議進(jìn)行 RPC 通信,這些組件對應(yīng)的倉庫如下。
| 組件名稱 | 倉庫地址 |
|---|---|
| 計算節(jié)點(CN, Compute Node) | galaxysql |
| 元數(shù)據(jù)服務(wù)(GMS, Global Meta Service) | galaxyengine |
| 存儲節(jié)點(DN, Data Node) | galaxyengine |
| 日志節(jié)點(CDC, Change Data Capture) | galaxycdc |
| 私有協(xié)議 | galaxyglue |
| K8S Operator | galaxykube |
GalaxySQL 是 PolarDB-X 的計算節(jié)點(CN, Compute Node)。
