天天看點

PolarDB-X 簡介

PolarDB-X 是由阿裡巴巴自主研發的雲原生分布式資料庫,是一款基于雲架構理念,并同時支援線上事務處理與線上分析處理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式資料庫産品,具備金融級資料高可用、分布式水準擴充、混合負載、低成本存儲和極緻彈性等能力,堅定以相容MySQL開源生态建構分布式能力。專注解決海量資料存儲、超高并發吞吐、大表瓶頸以及複雜計算效率等資料庫瓶頸難題,真正曆經了各屆天貓雙11及阿裡雲各行業客戶業務的考驗,助力企業加速完成業務數字化轉型。

核心特性

PolarDB-X 簡介

高可用

經過阿裡多年雙11驗證的X-DB(X-Paxos共識協定能力),提供資料強一緻,保證節點故障切換時 RPO=0。另外支援多樣化的部署和容災能力,比如基于Paxos強同步的同城三機房、三地五中心,另外搭配binlog異步複制的兩地三中心、異地災備、異地多活等。尤其在異地長距離傳輸上,基于 Batching & Pipelining 進行網絡優化來提升性能。

高相容

PolarDB-X主要相容MySQL,包括SQL、函數類型等,技術上引入全局時間授時服務,提供全局一緻性的分布式事務能力,通過TSO+2PC提供資料庫完整的ACID能力,滿足分布式下的Read-Commited/Repeatable-Read的隔離級别。同時在分布式事務的基礎上,提供全局二級索引能力,通過事務多寫保證索引和主表資料強一緻的同時,引入基于代價的CBO優化器實作索引選擇。除此以外,在中繼資料和生态對接層面,PolarDB-X基于Online DDL的技術提供了分布式下中繼資料的一緻性。同時硬體層面,相容主流國産作業系統和晶片認證,比如麒麟、鲲鵬、海光等。

另外在業界主流的分布式資料庫裡,分布式下的redolog/binlog等資料庫變更日志其實一直被廠商所忽視,從關系資料庫的發展曆史來看,生态和标準對于市場規模化非常重要,PolarDB-X 2.0會支援全局binlog能力,全面相容和擁抱MySQL資料庫生态,使用者可以将PolarDB-X當做一個MySQL庫,采用标準的binlog dump協定擷取binlog日志。

高擴充

PolarDB-X基于Share-Nothing的架構支援水準擴充,同時支援資料庫線上擴縮容能力,在OLTP場景下可支援千萬級别的并發、以及PB級别的資料存儲規模,同樣在OLAP場景下,引入MPP并行查詢技術,擴充機器後查詢能力可線性提升,滿足TPC-H等的複雜報表查詢訴求。

HTAP

随着移動網際網路和Iot裝置的普及,資料會産生爆炸式的增長趨勢,傳統的OLTP和OLAP的解決方案是基于簡單的讀寫分離或者ETL模型,将線上庫的資料T+1的方式抽取到資料倉庫中進行計算,這種方案存在存儲成本高、實時性差、鍊路和維護成本高。PolarDB-X 2.0設計中支援OLTP和OLAP的混合負載的能力,可以在一個執行個體裡同時運作TPC-C和TPC-H的benchmark測試,保證AP的查詢不影響TP流量的穩定性。核心技術層面,我們也有自己的創新性,比如我們會在計算層精确識别出TP和AP的流量,結合多副本的特性和多副本的一緻性讀能力,智能将TP和AP路由到不同的副本上,同時在AP鍊路上預設開啟MPP并行查詢技術,進而在滿足隔離性的基礎上,線性提升AP的查詢能力。在存儲層上,我們也在完善計算下推能力,未來也會提供高性能列存引擎,實作行列混合的HTAP能力。

極緻彈性

PolarDB-X結合PolarDB雲原生的技術,可以基于PolarDB的共享存儲+RDMA網絡優化能力,提供秒級備份、極速彈性、以及存儲按需擴充的能力。基于共享存儲的基礎上,結合分布式的多點寫入能力,可以在不遷移資料的前提下提供秒級彈性的能力,給到使用者完全不一樣的彈性體驗。

開放生态

PolarDB-X全面擁抱和堅定MySQL的開源生态,做到代碼完全自主可控的同時滿足分布式MySQL的相容性,架構做到簡單開放,隻要具備一定MySQL背景的同學即可完成持續運維。除此以外,PolarDB-X和阿裡雲的資料庫生态有完整的閉環對接,支援如DTS/DBS/DMS等,可打通阿裡雲的整個大生态。

适用場景

按應用類型選擇

PolarDB-X産品在高并發、分布式事務、複雜SQL優化、并行計算等方面都有比較好的使用者沉澱和技術發展,适用于如下場景:

  • 對資料一緻性及高可靠、系統高可用、可擴充性、容災要求較高的金融行業屬性的場景。
  • 對超高并發和大規模資料存儲有較高要求的網際網路線上事務類業務場景。
  • 傳統企業級應用因業務發展導緻計算量與資料量呈爆發式增長,急需具備更強計算能力的線上事務型資料庫場景,比如HTAP混合負載能力等。
PolarDB-X 簡介

按容量選擇

在OLTP業務領域,資料庫的容量通常關注并發度、資料存儲、複雜SQL響應時間這3個次元。若目前資料庫中任意一個次元出現瓶頸,或出于對業務不斷高速發展提前規劃資料庫選型的考慮,當下選用PolarDB-X建構分布式資料庫,可有效降低後期資料庫的擴充及運維壓力。

在業務發展初期,選擇單機資料庫還是分布式資料庫,需要考量很多因素。但從資料庫自身角度出發,業務使用的SQL語句、資料類型、事務、索引、其他功能均是确定的。對于大部分業務而言,隻要SQL文法、資料類型、事務、索引支援較為完整,且具備有效手段可在各種極端場景下進行水準擴充,那麼對于高速發展的業務而言,PolarDB-X即是所有分布式資料庫中最具生命力及延續性的方案

按成本選擇

對于資料庫選型的成本考量,主要包括如下2個部分:

  • 業務開發上手難度過高,往往會導緻項目延期,業務效果不盡人意。對于一個新型資料庫而言,如何有效相容現有流行資料庫的使用習慣和功能支援的完整度至關重要。PolarDB-X相容MySQL生态,對于主流的用戶端、驅動有着良好的相容性,SQL文法相容完善,業務可快速進行對接适配。
  • 資料庫長期持久的穩定性及優異的性能表現對于業務而言至關重要,因PolarDB-X将資料、負載分擔至多個MySQL執行個體中,是以面對逐漸增大的負載壓力,PolarDB-X相比大規格單機資料庫具備更強的穩定性。性能表現層面,因為天然支援分布式,抵禦業務的超高并發是其強項,配合MPP并行計算,PolarDB-X能夠覆寫絕大多數線上業務的複雜計算需求。

産品架構

PolarDB-X 簡介

PolarDB-X整個架構核心分為3部分:

  1. CN(全稱:Compute Node/計算節點),主要提供分布式SQL引擎,解決分布式事務協調、優化器、執行器等。
  2. DN(全稱:Data Node/存儲節點),主要提供資料存儲引擎,比如InnoDB和自研存儲引擎(X-Engine和神秘列存),解決資料一緻性和持久化,并提供計算下推能力滿足分布式要求(比如Project/Filter/Join/Agg等下推計算),可支援本地盤和共享存儲。
  3. GMS(全稱:Global Meta Service/全局中繼資料服務),主要提供分布式下中繼資料和全局授時服務,比如TSO、表的metadata資訊等。

除此以外,會有專門的接入點(endpoint)的設計,可以了解為基于負載均衡裝置提供的vip/dns。一個資料庫執行個體可以有不同政策的節點點,比如HTAP endpoint,我們會基于全局版本号、智能政策分流OLTP和OLAP到不同副本上,滿足混合負載下的強一緻、強隔離的訴求。

實體拓撲

PolarDB-X 簡介

PolarDB-X整個元件的實體部署上,可支援公共雲、線下專有雲的全形态部署能力,互動上提供面向背景的資料庫管控和使用者控制台,使用者也可以基于OpenAPI完成管控內建。

PolarDB-X提供資料庫執行個體化,執行個體有類似于8c32g/32c128g等更大規格,一個執行個體在實體上會有4種資源組成:三副本的GMS、一組CN節點(計算節點)、一組DN節點(存儲節點)、一組CDC(提供全局binlog),元件之間會進行中繼資料和RPC請求的互動,不同的執行個體規格的最大差別在于CN/DN節點數量的不同,執行個體規格會和CN/DN節點數保持線性一緻。

對于外部使用者的使用來說,一個PolarDB-X的執行個體最終會通過接入點(endpoint)的vip/dns來通路,對于使用者來說就是一個MySQL執行個體的體驗,可以使用MySQL 指令行、GUI用戶端等。

快速體驗

  1. 進入阿裡雲産品頁面: https://polardb-x.console.aliyun.com/cn-hangzhou/clustersX https://polardb-x.console.aliyun.com/cn-hangzhou/clustersX
  2. 切換PolarDB-X 2.0的Tab頁之後,進入産品購買頁面 (選擇節點規格 和 節點數量)
    PolarDB-X 簡介
  3. 擷取執行個體的通路位址,适用MySQL用戶端直接登入,就可以盡情的暢玩。