產品概述
什么是PolarDB
PolarDB是阿里巴巴自研的新一代云原生數據庫,在計算存儲分離架構下,利用了軟硬件結合的優勢,為您提供具備極致彈性、高性能、海量存儲、安全可靠的數據庫服務。100%兼容MySQL和PostgreSQL生態,高度兼容Oracle語法。
PolarDB共有三個引擎,分別為PolarDB MySQL版(PolarDB for MySQL,簡稱PolarDB-M)、PolarDB PostgreSQL版(PolarDB for PostgreSQL,簡稱PolarDB-PG)、PolarDB分布式版(PolarDB for Xscale,簡稱PolarDB-X)。經過阿里巴巴多年雙十一活動的最佳實踐驗證,讓用戶既享受到開源的生態靈活性,又獲得商業云原生數據庫的高性能和安全等企業級能力。
引擎 | 數據庫生態 | 兼容性 | 產品架構 | 輸出形態 | 應用場景 |
PolarDB MySQL版 | MySQL | Share Storage,計算存儲分離 | 公共云、專有云企業版 | MySQL生態下的云原生數據庫 | |
PolarDB PostgreSQL版 | PostgreSQL、Oracle | Share Storage,計算存儲分離 | 公共云、專有云企業版、DBStack | PostgreSQL生態下的云原生數據庫 | |
PolarDB分布式版 | MySQL | Share Nothing,分布式 | 公共云、專有云企業版、DBStack | MySQL生態下的大規模數據、超高并發應用 |
PolarDB MySQL版和PolarDB PostgreSQL版產品架構
PolarDB MySQL版和PolarDB PostgreSQL版均為計算存儲分離、共享存儲的架構,通過云原生架構、軟硬件一體化、共享分布式存儲的設計,主節點和只讀節點使用物理復制、RDMA網絡低時延,能夠快速同步數據,徹底解決了主從異步復制所帶來的備庫數據非強一致的問題,使得整個數據庫集群在應對任何單點故障時,都可以保證數據零丟失,同時實現秒級節點擴縮容。
核心組件
Proxy
PolarDB通過內部的代理層Proxy對外提供服務,應用程序的請求都先經過代理層,然后訪問到數據庫節點。代理層不僅可以做安全認證、保護和會話保持,還可以解析SQL,把寫操作發送到主節點,把讀操作均衡地分發到多個只讀節點,實現自動的讀寫分離。
計算節點
一寫多讀集群內有一個讀寫節點以及多個只讀節點,多主集群(僅PolarDB MySQL版支持)內可支持多個讀寫節點和多個只讀節點,計算節點主要提供數據庫SQL引擎功能,分為通用規格和獨享規格。
共享存儲
集群內的多個節點共享存儲資源,單集群支持最高500 TB存儲空間。
架構優勢
大容量
存儲最高500 TB,不再需要因為單機容量的天花板而去購買多個實例做分片,從而簡化應用開發,降低運維負擔。
低成本
計算存儲分離架構下,每增加一個只讀節點只收取計算資源的費用,而傳統的備節點或只讀節點同時包含計算和存儲資源,每增加一個節點都需要支付相應的存儲費用。
分鐘級擴縮容
計算存儲分離的架構配合容器虛擬化和共享存儲技術,使得增減節點只需5分鐘。存儲容量自動在線擴容,無需中斷業務。
讀一致性
集群地址利用LSN(Log Sequence Number)確保讀取數據時的全局一致性,避免因為主備延遲引起的不一致。
毫秒級延遲(物理復制)
利用基于Redo的物理復制代替基于Binlog的邏輯復制,提升主備復制的效率和穩定性。即使對大表進行加索引、加字段等DDL操作,也不會造成數據庫的延遲。
秒級快速備份
利用底層分布式存儲的快照技術,只需分鐘級別即可完成對TB級數據量大小的數據庫的備份,且整個備份過程不需要加鎖,效率更高,影響更小,對應用程序幾乎無影響,全天24小時均可進行備份。
PolarDB分布式版產品架構
PolarDB分布式版采用了基于計算存儲分離的Share Nothing系統架構,該架構使用戶可以根據業務需要進行分層容量規劃,實現大規模擴展。
核心組件
元數據服務(Global Meta Service,GMS),主要提供分布式的元數據,提供全局授時服務(TSO),維護Table/Schema、Statistic等Meta信息、維護賬號、權限等安全信息。
計算節點(Compute Node,CN),主要提供分布式SQL引擎,包含核心的優化器和執行器。基于無狀態的SQL引擎提供分布式路由和計算,解決分布式事務2PC協調、分布式DDL執行、全局索引維護等。
存儲節點 (Data Node,DN),主要提供數據存儲引擎,基于多數派Paxos共識協議提供高可靠存儲、分布式事務的MVCC多版本存儲,另外提供計算下推能力滿足分布式的計算下推要求(比如Project/Filter/Join/Agg等下推計算),可支持本地盤和共享存儲。
日志節點(Change Data Capture,CDC),主要提供兼容MySQL生態的主備復制協議,兼容Binlog協議和數據格式、支持主備復制Replication的協議和交互。
架構優勢
高可用
經過阿里巴巴多年雙十一驗證的X-DB(X-Paxos共識協議能力),提供數據強一致,保證節點故障切換時RPO=0。另外支持多樣化的部署和容災能力,比如基于Paxos強同步的同城三機房、三地五中心,另外搭配Binlog異步復制的兩地三中心、異地災備、異地多活等。尤其在異地長距離傳輸上,基于Batching&Pipelining進行網絡優化來提升性能。
高兼容
PolarDB分布式版主要兼容MySQL,包括SQL、函數類型等,技術上引入全局時間授時服務,提供全局一致性的分布式事務能力,通過TSO+2PC提供數據庫完整的ACID能力,滿足分布式下的Read-Committed/Repeatable-Read的隔離級別。同時在分布式事務的基礎上,提供全局二級索引能力,通過事務多寫保證索引和主表數據強一致的同時,引入基于代價的CBO優化器實現索引選擇。除此以外,在元數據和生態對接層面,PolarDB分布式版基于Online DDL的技術提供了分布式下元數據的一致性。同時硬件層面,兼容主流國產操作系統和芯片認證,比如麒麟、鯤鵬、海光等。另外在業界主流的分布式數據庫里,分布式下的Redolog/Binlog等數據庫變更日志其實一直被廠商所忽視,從關系數據庫的發展歷史來看,生態和標準對于市場規模化非常重要,PolarDB分布式版支持Binlog日志服務,兼容和擁抱MySQL數據庫生態,可以將PolarDB分布式版當做一個MySQL庫,采用標準的Binlog dump協議獲取Binlog日志。
高擴展
PolarDB分布式版基于Share Nothing的架構支持水平擴展,同時支持數據庫在線擴縮容能力,在OLTP場景下可支持千萬級別的并發、以及PB級別的數據存儲規模,同樣在OLAP場景下,引入MPP并行查詢技術,擴展機器后查詢能力可線性提升,滿足TPC-H等的復雜報表查詢訴求。
HTAP
隨著移動互聯網和IoT設備的普及,數據會產生爆炸式的增長趨勢,傳統的OLTP和OLAP的解決方案是基于簡單的讀寫分離或者ETL模型,將在線庫的數據以T+1的方式抽取到數據倉庫中進行計算,這種方案存在存儲成本高、實時性差、鏈路和維護成本高等缺陷。PolarDB分布式版設計中支持OLTP和OLAP的混合負載的能力,可以在一個實例里同時運行TPC-C和TPC-H的benchmark測試,保證AP的查詢不影響TP流量的穩定性。核心技術層面也有所創新,比如在計算層精確識別出TP和AP的流量,結合多副本的特性和多副本的一致性讀能力,將TP和AP智能路由到不同的副本上,同時在AP鏈路上默認開啟MPP并行查詢技術,從而在滿足隔離性的基礎上,線性提升AP的查詢能力。