我眼中的GaussDB——參加華為合夥夥伴賦能會有感
- 2019 年 10 月 4 日
- 筆記
引言
有幸參加華為合作夥伴賦能會,本文是對賦能會的一些總結,知識梳理。希望能讓大家對GaussDB能有一些了解,如有誤之處望批評指正。
1. GaussDB 介紹
2019年5月15日,華為在北京發布了人工智慧原生的名為「高斯(GaussDB)」的資料庫軟體,一款分散式資料庫,取名Gauss是在致敬數學家高斯。
華為內部從2001年一直研發迭代,內部自用。今年5月份正式全球發布商用。
2. GaussDB 優勢
· 全球首款AI-Native資料庫。華為首次將人工智慧技術融入分散式資料庫的全生命周期,實現自運維、自管理、自調優、故障自診斷和自愈。 · 業界首個支援ARM架構的企業級資料庫。過去的資料庫都是基於單一計算架構開發的,比如x86、Power、SPARC等。 · 支援異構環境帶來的性能提升效果明顯。通過異構計算創新框架充分發揮X86、ARM、GPU、NPU多種算力優勢,在權威標準測試集TPC-DS上,GaussDB的性能比業界提升50%,排名第一。
3. GaussDB 版本
GaussDB 100 OLTP 操作指令集,功能,函數,視圖,各方面跟O非常相像。
GaussDB 200 OLAP 基於PG開發,程式碼量是PostgreSQL 的3~4倍 PG(40萬行程式碼)。
本文是對GaussDB 200的介紹。
4. GaussDB 200
4.1 技術指標

4.2 基本概念

4.3 架構對比
GaussDB 200採用Share-nothing架構,由多個擁有獨立且互不共享CPU、記憶體、存儲等系統資源的節點組成。在這樣的系統架構中,業務數據被分散存儲在多個物理節點上,數據分析任務被推送到數據所在位置就近執行,通過控制模組的協調,並行地完成大規模的數據處理工作,實現對數據處理的快速響應。

Share-nothing架構具備如下優點:
· 最易於擴展的架構 ——為商業智慧BI( Business Intelligence)和數據分析的高並發、大數據量計算提供按需擴展的能力 —— 自動化的並行處理機制 · 內部自動並行處理,無需人工分區或優化 ——數據載入與訪問方式與一般資料庫相同 ——數據分布在所有的並行節點上 ——每個節點只處理其中一部分數據 · 最優化的I/O處理 ——所有的節點同時進行並行處理 ——節點之間完全無共享,無I/O衝突 · 增加節點實現存儲、查詢及載入性能的線性擴展
GaussDB 200由多個MPPDBServer組成



4.4 網路拓撲
GaussDB 200整個系統網路劃分為2個平面,即業務平面和管理平面,兩個平面之間採用物理隔離的方式進行部署,保證業務、管理各自網路的安全性。
· 管理平面通過運維網路接入,提供系統管理和維護功能,主要用於集群的管理,對外提供集群監控、配置、審計、用戶管理等服務。 · 業務平面,主要用於集群內部數據處理的專用網路平面,此處的業務平面非客戶的應用網路平面。主備管理節點還支援設置外部管理網路的IP地址,用戶可以通過外部管理網路進行集群管理。
組網方式分為單平面組網和雙平面組網。採用單平面組網時,不區分管理平面和業務平面。在典型配置下, GaussDB 200集群雙平面組網模型。

4.5 集群部署方案
為減少硬體故障對系統可用性的影響,建議集群部署方案遵循如下原則。
· 對於每組實例,其主、備部署在不同的節點上。例如:GTM的主、備分別部署在 不同的節點上。DN的主、備、從備部署在不同的節點上。 · 建議節點記憶體大於等於512G,每個節點部署4個DN。
說明 輕量化單節點場景下,單節點支援部署2~6個DN。
· 低並發場景下,整個集群部署2~4個CN即可以滿足使用要求。 · 建議GTM、 CM部署在沒有CN的節點上。如此部署,既減少某節點故障帶來的損 失,還可以避免集群運行壓力集中在個別節點上。 · 安全環是集群組網的基本單元,普通安全環內包含至少3個伺服器,各伺服器的 DN形成完備的主備關係。系統默認會根據Datanode進程數據目錄的個數加1確定 環節點數,也可以配置環節點列表和環節點數參數指定成環規則,建議使用小 環,環節點數不宜過大。
為保證負載均衡和資源的有效利用,在遵循上述原則的基礎上,建議部署模式如下: · 主GTM和備CMServer部署在同一個節點上,備GTM和主CMServer部署在同一個 節點上。 · 根據需要在部分節點上部署CN。 · 對於DN的部署模式: ——一個伺服器上的主DN對應的備節點和從備節點會按照圖2-6所示自動依照安 全環中節點的順序依次分散部署在其他節點上, DN分布均衡。 ——各個節點上的DN數要求相同。
——DN的主、備、從備部署在不同的節點上。
說明 從備DN不佔用實際存儲空間,僅在主、備DN故障時才起作用,且只存儲數據日誌,不存儲數據頁面。

4.6 數據查詢的流程

具體查詢流程如下: 1. 用戶通過應用程式發出查詢本地數據的SQL請求到Coordinator。 2. Coordinator接收用戶的SQL請求,分配服務進程,向GTM請求分配全局事務信 息。 3. GTM接收到Coordinator的請求,返回全局事務資訊給Coordinator。 4. Coordinator根據數據分布資訊以及系統元資訊,解析SQL為查詢計劃樹,從查詢計 劃樹中提取可以發送到Datanode的執行步驟,封裝成SQL語句或者子執行計劃樹, 發送到Datanode執行。 5. Datanode接收到讀取任務後,查詢具體Storage上的本地數據塊。 6. Datanode任務執行後,將執行結果返回給Coordinator。 7. Coordinator將查詢結果通過應用程式返回給用戶。
4.7 在線擴容
隨著客戶業務的發展,現有系統在磁碟容量、性能等方面將逐步呈現瓶頸。GaussDB 200分散式資料庫集群提供scale-out線性擴展能力,滿足客戶業務增長和利舊的訴求 (將閑置的機器加入系統)。 GaussDB 200採用Node Group技術,支援多表並行擴容,擴容速度高達400G/小時/新增 節點。

GaussDB 200在線擴容具有如下特點:
· 擴容不中斷業務。擴容過程中支援數據持續入庫、查詢業務不中斷。
· 一致性Hash技術和多表並行擴容等技術,助力擴容性能提升。 採用一致性Hash技術使得重分布過程中需要遷移的數據量最小。 重分布過程中支援多表並行及用戶自主選擇表的重分布順序。 支援擴容進度查詢,實時監控擴容進度。 · 隨著節點數增加,集群性能線性增長。 如圖所示,在全並行分散式架構下, GaussDB 200隨著節點數的增加,集群的 數據載入性能、業務處理性能和容量可線性擴展。

5. 附錄
GaussDB200和其他資料庫對比

參考:
華為生態大學:https://partner.huawei.com/university/ GaussDB開發者社區:https://developer.huaweicloud.com/gaussdb/index.html GaussDB論壇:https://bbs.huaweicloud.com/forum/forum.php?mod=forumdisplay&fid=565&from=groupmessage
來源:墨天輪(https://www.modb.pro/db/6416,複製在瀏覽器打開或者點擊「閱讀原文」)