[轉帖]數據庫系列之簡要對比下GaussDB和OpenGauss數據庫

https://blog.csdn.net/solihawk/article/details/134939941

GaussDB作爲一款企業級的數據庫產品,和開源數據庫OpenGauss之間又是什麼樣的關係,剛開始接觸的時候是一頭霧水,因此本文簡要對比下二者的區別,以加深瞭解。


1、GaussDB和OpenGauss數據庫簡要對比

GaussDB是華爲基於PostgreSQL數據庫內核創新研發的企業級分佈式關係型數據庫,支持分佈式事務,同城跨AZ部署,數據0丟失,支持1000+的擴展能力,PB級海量存儲。最早GaussDB的定位是雲數據庫產品集合,包括關係型和非關係型數據庫,產品矩陣如下:

在這裏插入圖片描述

可以看到GaussDB數據庫包括:關係型的GaussDB(for openGauss)、GaussDB(for MySQL)和GaussDB(for PostgreSQL);非關係型的GaussDB(for Cassandra)、GaussDB(for Mongo)、GaussDB(for Redis)和GaussDB(for Influx)。不過從最新官網看到GaussDB數據庫的劃分,又聚焦於關係型數據庫,從中可以看出從內部對GaussDB的產品定位上也有不同的理解。現在是定位更加清晰,雲數據庫GaussDB是應用於金融、電信和政企等關鍵核心系統的分佈式數據庫,尤其特指關係型的GaussDB(for openGauss)。

在這裏插入圖片描述

1.1 OpenGauss和PostgreSQL關係

GaussDB的內核引擎最早是基於PostgreSQL 9.2版本不斷演進,根據PG-XC架構衍生了多CN架構,並開發了分佈式執行框架和向量化引擎等重要特性。

在這裏插入圖片描述

OpenGauss作爲GaussDB數據庫的開源主備版本,和PostgreSQL相比,在底層架構和數據存儲方面類似,但OpenGauss在性能和擴展性方面進行了優化。主要在以下方面:

  • 執行模型:OpenGauss優化了線程池模型,滿足高併發的訪問需求
  • NUMA改造:OpenGauss支持信創服務器的Numa適配,提升服務器的性能
  • 存儲引擎優化:OpenGauss支持列存和內存引擎,滿足HTAP類業務場景需求
  • 優化器優化:結合實際的應用場景支持CBO對複雜查詢場景的優化能力

在這裏插入圖片描述

對比PostgreSQL可以看到,OpenGauss對數據庫引擎的性能和架構做了適配性改造,更符合國產化的需求,以滿足信創環境下大規模和複雜的數據處理請求。

1.2 GaussDB和OpenGauss不同之處

GaussDB數據庫作爲企業級的分佈式數據庫,支持分佈式和主備的部署場景,其中分佈式版本包含CN(計算節點)、DN(數據存儲節點)和GTM(分佈式事務管理器)等節點類型。GaussDB數據庫的分佈式版本是基於share-nothing架構實現的,通過GTM-Lite技術實現事務強一致,消除了無中心節點性能的瓶頸。而OpenGauss簡單來說就是GaussDB(for OpenGauss)的一個開源版本,支持主備部署形態。

1.2.1 組件類型

GaussDB數據庫作爲分佈式架構數據庫,在數據庫組件上相比OpenGauss數據庫多了協調節點(Coordinator Node)和全局事務管理器(Global Transaction Manager),如下圖所示。

在這裏插入圖片描述

  • OM(Operation Manager):運維管理模塊提供數據庫日常運維、配置管理的管理接口、工具等
  • CM(Cluster Manager):數據庫管理模塊管理和監控數據庫系統中各個功能單元和物理資源的運行情況,確保整個系統的穩定運行。CM提供數據庫主備的狀態監控、網絡通信故障監控、文件系統故障監控、故障自動主備切換等能力。
  • GTM(Global Transaction Manager):全局事務管理器負責生成和維護全局事務ID、事務快照、時間戳和sequence等全局唯一的信息。
  • CN(Coordinator Node):協調節點負責接收來自應用的訪問請求,並向客戶端返回執行結果;負責對SQL請求解析,並將請求路由到不同的DN分片上執行。
  • DN(Data Node):數據節點負責存儲業務數據、執行數據查詢任務以及向CN或客戶端返回執行結果
  • ETCD:分佈式鍵值存儲系統,用於共享配置和服務發現
  • CMS(cm_server):進行數據庫實例管理和實例仲裁的組件。主要功能包括:1)接收各個節點上cm_agent發送的數據庫各實例狀態;2)提供數據庫實例整體狀態的查詢功能;3)監控實例的狀態變化並進行仲裁命令的下發
  • Storage:服務器的本地存儲,用於數據持久化,支持集中式存儲

對比GaussDB和OpenGauss,OpenGauss由於是主備部署形態,不需要分佈式架構下的CN和GTM節點,因此在數據庫組件上有以下不同:

在這裏插入圖片描述

1.2.2 部署架構

在這裏插入圖片描述

GaussDB和OpenGauss數據庫部署架構如圖所示,GaussDB在數據庫部署組件中多了CN協調節點和GTM全局事務節點。另外,GaussDB數據庫在分佈式SQL執行的時候,通過CN節點將SQL請求下發到不同的DN節點執行,然後彙總結果到CN節點再返回給客戶端,而在OpenGauss中客戶端直接從DN層獲取數據並返回。

在這裏插入圖片描述

1.2.3 GaussDB和OpenGauss差異對比

前文對比了GaussDB和OpenGauss數據庫在組件和架構上的不同,下面總結下二者之間的差異:

  1. 開發背景和社區支持:OpenGauss是由華爲公司發起的一個開源項目,具有活躍的社區支持和貢獻者。GaussDB則是華爲公司在OpenGauss的基礎上進行商業化擴展和增強後的產品,提供企業級的支持和服務。
  2. 功能特性:OpenGauss作爲開源產品,其功能相對基礎,適合大多數通用場景,並且可以根據需求進行定製和擴展。GaussDB在OpenGauss的基礎上增加了更多的高級特性和優化,包括但不限於性能優化、安全性增強、可靠性提升等,以滿足企業級應用的更高要求。
  3. 技術支持和維護:OpenGauss作爲一個開源項目,通常依賴於社區的支持和貢獻來解決技術問題和提供更新。GaussDB作爲商業產品,由華爲公司提供專業的技術支持和維護服務,包括技術支持熱線、定期更新和補丁等。
  4. 適用場景:OpenGauss適用於對成本敏感、需要靈活性和可控性的場景,如中小型企業、教育機構或個人開發者。GaussDB更適合對數據安全、性能穩定性和服務質量有較高要求的企業級應用場景,特別是大型企業和關鍵業務系統。
  5. 部署架構:OpenGauss支持主備部署架構,滿足高可用要求;GaussDB支持主備和分佈式部署形態,高可用架構上支持多中心部署,滿足金融級別的高可用要求。
  6. 擴展能力:OpenGauss集中式部署受限於單臺服務器的處理能力,無法橫向擴容;GaussDB支持分佈式部署架構,具備橫向擴展能力,滿足高併發高性能的場景。
  7. 信創生態支持:OpenGauss和GaussDB支持全棧信創能力,和國產CPU、國產操作系統和中間件有很好的生態兼容。

在這裏插入圖片描述

1.3 總結

本文簡要對比了GaussDB和OpenGauss數據庫,二者作爲優秀的國產數據庫雖然在發展路線和應用場景上會有所不同,但在國產化基礎軟件信創改造的過程中都發揮了重要的作用。GaussDB作爲企業級的分佈式數據庫,在金融、電信等關鍵行業應用廣泛,而OpenGauss作爲開源版本,更像MySQL或PostgreSQL數據庫一樣的開源生態,吸引更多的國產數據庫愛好者參與共建、開發和優化。


參考資料:

  1. https://support.huaweicloud.com/gaussdb/index.html
  2. https://docs.opengauss.org/zh/docs/latest/docs
  3. https://blog.csdn.net/HCIS_HENGCHI/article/details/133774888
文章知識點與官方知識檔案匹配,可進一步學習相關知識
MySQL入門技能樹數據庫組成84165 人正在系統學習中
牧羊人的方向
微信公衆號
分享數據庫、分佈式和容器相關技術
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章