全部產品
Search
文件中心

PolarDB:概述

更新時間:Jul 06, 2024

文本介紹PolarDB-X集中分布式一體化的相關概念。

問題背景

選擇集中式資料庫還是分散式資料庫一直是資料庫選型討論的熱點。對於大部分中小企業來說,集中式資料庫就能滿足其日常的業務需求,其資源規模適中,成本適中,營運起來也比較簡單。分散式資料庫具備較高的效能,能夠處理複雜的業務情境,滿足客戶對高吞吐、大儲存、低延時、易擴充和超高可用資料庫服務的需求。但是,分散式資料庫的價格較高,技術門檻和營運成本都較高,對大部分中小企業來說其適用範圍比較窄。

當然中小企業可能也會出現業務突增的情況,需要高並發高吞吐的資料庫來處理業務,對資料庫的擴充性有一定的要求。或者隨著業務規模的發展,使用集中式資料庫的業務也會有分布式擴充的需求。

因此雲原生資料庫PolarDB分布式版(簡稱“PolarDB-X”)推出集中分布式一體化的能力,在一套資料庫上兼具分散式資料庫的可用性與擴充性和集中式資料庫的功能與效能。

核心能力

在集中分布式一體化資料庫中,資料節點被獨立出來作為集中式形態,完全相容單機資料庫形態。當業務增長到需要分布式擴充的時候,架構原地升級成分布式形態,分布式組件無縫對接到原有的資料節點,不需要資料移轉,也不需要應用側做改造,即可享受分布式帶來的可用性與擴充性。

下面針對PolarDB-X集中分布式一體化技術的幾項核心能力進行介紹。

集中分布式一體化的產品形態

PolarDB-X的產品主售形態主要分為標準版(集中式形態)企業版(分布式形態),詳情如下:

image.png

集中式形態:標準版

PolarDB-X標準版是集中式形態,由分布式中的資料節點(DN)多副本單獨提供服務。標準版最小支援2核4 GB規格,詳情請參見規格說明

image.png

PolarDB-X標準版採用Paxos的多數派複製協議,相對於MySQL的主備複製協議,能保證副本間的強一致性,滿足RPO=0以及RTO<30秒,很好地滿足金融級情境的容災訴求,詳情請參見高可用概述。同時自研Lizard分散式交易引擎,相比於MySQL開源有有更好的高可用、以及30~40%的效能提升。

購買PolarDB-X執行個體時,系列可以選擇標準版,詳情請參見建立執行個體

分布式形態:企業版

PolarDB-X企業版是分布式形態,包含完整的分布式組件,包括:計算節點(CN)、資料節點(DN),日誌節點(CDC),列存節點(COLUMNAR)和中繼資料中心(GMS)。其架構如下所示:

image.png

PolarDB-X企業版高度相容MySQL生態,支援強一致分散式交易和分布式並行查詢,支援分布式水平擴充,可以從最小1個節點(集中式)擴充到1024個節點(分布式),支援千萬級QPS、以及PB層級的資料規模。

購買PolarDB-X執行個體時,系列可以選擇企業版,詳情請參見建立執行個體

標準版升級至企業版

隨著業務的高速發展,PolarDB-X標準版使用者可能會遇到集中式的瓶頸,例如單表過大導致查詢效率下降、高並發查詢導致資料庫長期處於高負載狀態、無法滿足分析型需求等,此時對資料庫做垂直升配,已經無法解決問題,且性價比不高。

PolarDB-X提供標準版執行個體原地升到企業版執行個體的能力,藉助分布式特性和HTAP功能來解決集中式資料庫上遇到的問題,同時滿足使用單機MySQL資料庫的體驗與效能。

image.png

上圖給出了PolarDB-X標準版原地無縫升級到企業版的過程。無縫升級包括如下幾個方面:

  • 標準版和企業版採用統一的資料底座(DN),升級過程直接為標準版增加 CN、CDC、GMS 等分布式的組件,無需資料移轉。無論是切換還是復原,寫的都是一份資料,不用擔心資料錯亂。

  • 集中式表原地轉換成分布式單表,結合PolarDB-XOnline DDL的能力,便能享受分布式的擴充性。

  • 標準版升級企業版後,串連串不變,無需業務變更,升級過程僅存在分鐘級串連閃斷。

  • 透明分布式,深度相容集中式MySQL生態,無需應用改造,詳情請參見MySQL相容性

對於從標準版升級至企業版的使用者,往往會擔心分布式特性帶來的額外效能開銷。針對這一問題,PolarDB-X結合表組與分區組的技術,保證了關聯資料按照集中式的形態分布,從而對分散式交易和複雜查詢進行最佳化,在單分區情境下對齊集中式形態的效能。

儲存資源集區與彈性規格

PolarDB-X在面向分布式線性擴充設計上,針對集中式的能力,引入儲存池和Locality的概念, 協助使用者按需進行分布式擴充。

  • 儲存資源集區:將DN儲存節點劃分為互不交叉的資源集區,支援在單個儲存池維度添加/減少 DN 儲存節點。

  • Locality,將資料庫中的對象(資料庫、表、分區)通過Locality 屬性關聯到不同的資源集區。

image.png

下面結合兩個典型情境介紹儲存資源集區與Locality是如何協助使用者按需進行分布式擴充的:

  • 情境1:如果原來的集中式業務是多租戶的SAAS系統,從標準版升級到企業版後,可以通過垂直分割的方式,將租戶打散到不同的儲存資源集區,每個資源集區仍維持單表的形式,實現分布式的擴充,如上圖中的儲存資源集區 1 所示。

  • 情境2:如果原來集中式是電商業務,隨著使用者量和並發量的增加,需要進行水平分割,將集中式的資料水平分割打散到一個資源集區的多個DN節點上實現擴充的目標,如上圖中的儲存資源集區 3 所示。

下圖展示了集中式的資料在分布式形態下,如何利用 Online DDL 的能力需進行分布:

image.png

  • 原始業務的多個單表,可以繼續保持單表的形態,演化為分布式的垂直分割,通過擴充單個儲存池內的分布式節點後,可以實現多個單表在儲存池多DN節點上的均衡分布。

  • 原始業務的大表,可以線上變更為分布式表,演化為分布式的水平擴充,通過擴充單個儲存池內的分布式節點後,分布式表的partition會自動進行資料均衡調度。

  • 原始業務的多張表,大表線上變更為分布式表,單表繼續保持並劃分到多個儲存池,整體演化為分布式的垂直分割、水平分割的組合情境,通過資源擴充實現線效能力。

對於每個資料節點(DN),由於資料分布的不同,實際對資源的需求也有區別。PolarDB-X支援針對每個DN節點單獨升降配,實現靈活的彈性規格,提升整體的資源使用率。

如何管理儲存資源集區與資料節點彈性規格詳見資料節點管理