Categories
程式開發

開源數據庫這麼香,為什麼我們還要下功夫自研?


摘要: 從開源到自研,數據庫領域的那些門門道道。

談到數據庫,必然會談及開源。

但在很長的一段時間內,以關係型數據庫為例,它一直是商業公司握在手中的專利,整個數據庫市場被這些大公司所壟斷瓜分,直到90年代MySQL第一個開源版本的出現,才有瞭如今開源開放的數據庫市場。

根據DB-Engines最新公佈的數據庫受歡迎度排名,前10名中,僅開源數據庫就佔據了7席,具體包括關係型數據庫MySQL、Postgre SQL,非關係數據庫MangoDB、Redis、Elasticsearch和Cassandra。

也正是因為開源數據庫如此廣受歡迎,越來越多的商業公司也願意基於這些開源數據庫做更深度的優化。

為什麼要基於開源數據庫自研?

雖然開源數據庫沒有高昂的商業授權許可費用,但使用開源數據庫卻存在許多問題,尤其是在以數據支撐的互聯網時代,單槍匹馬不可能扛住各種意外狀況。

不少開源數據庫的易用性差、配套能力也較弱,需要不斷地維護,而且一旦遇到數據丟失問題,很難快速恢復,造成的損失不可估量。與此同時,開源數據庫還得面臨服務器、數據庫維護升級、人力運維等各種大大小小的成本支出,很難滿足業務的快速擴張以及可持續發展。

這種時候,不少雲廠商就會做一些讓DBA運維人員一勞永逸的工作,讓開源數據庫上雲,包攬底層那些“瑣碎”的運維工作。

以華為雲RDS系列產品為例,RDS for MySQL、RDS for PostgreSQL服務,以及DDS文檔數據庫服務(文檔類型Mongo),都是基於開源打造的數據庫服務,聚焦最基礎的雲原生開發對雲數據庫的要求,主要面向數據規模較小,性能要求一般的業務場景,提供極致性價比的解決方案。

但問題隨之而來,開源數據庫上雲只能解決中小企業的簡化部署、運維、調優,極致性價比等訴求,卻無法滿足金融、政企等對數據安全、響應速度、可靠、可用有嚴苛要求的大型企業。

權衡利弊下,許多企業都會選擇開源數據庫+商業數據庫的組合模式,保證數據的可用可靠。

GaussDB系列就是結合華為積累多年的數據庫研發經驗打造的新一代分佈式數據庫產品系列,立足自研創新,基於統一的架構,一方面擁抱並兼容MySQL、Mongo等生態,另一方面打造openGauss生態,主要面向政企客戶,強調高性能、高可靠、高安全等方面訴求。

在關係型數據庫方面,華為雲今年7月正式發布上線了雲原生GaussDB(for MySQL)數據庫。同時,基於華為開放生態的openGauss內核打造的分佈式數據庫GaussDB(openGauss)也會在年內正式商用發布。

非關係型數據庫方面,重點打造雲原生GaussDB NoSQL多模數據庫系列,支持文檔類型(Mongo)、寬表類型(Cassandra)、時序(Influx),KV(Redis)等多協議接口。目前, GaussDB(for Mongo)、GaussDB(for Cassandra)、GaussDB(for Redis)已上線。

相較於開源數據庫,GaussDB系列數據庫支持NDP(near data process)技術,可以讓計算和數據進行融合,加速數據的處理,從而大幅提升整體的性能。

以GaussDB(for MySQL)為例,其基於華為最新一代DFV分佈式存儲,採用計算存儲分離架構,支持1寫15讀的只讀節點的極速擴展,最高支持128TB的海量存儲,可實現超百萬級QPS吞吐,單節點相比原生MySQL性能提升7倍。

GaussDB NoSQL則擁有極強的多模數據管理能力,在並發讀寫能力、擴容伸縮、故障重構時間、備份效率、恢復效率等方面,相比純開源軟件能力有了質的飛躍。

最關鍵的是,華為GaussDB數據庫全面支持包含鯤鵬和x86在內的多樣化算力,具備從芯片到服務器、存儲、操作系統、數據庫的E2E研發能力,因此具備了數據庫軟硬性能調優的獨特優勢,比如GaussDB數據庫DB算子下推存儲,進而實現性能較友商數據庫提升了30%。

openGauss,打造新的開源數據庫生態

一方面積極擁抱既有的開源數據庫生態,華為雲也在打造openGauss生態。

openGauss是一款開源關係型數據庫管理系統,採用木蘭寬鬆許可證v2發行,其內核源自PostgreSQL,並著重在架構、事務、存儲引擎、優化器等方向持續構建競爭力特性。在ARM架構的芯片上深度優化,並兼容x86架構。其技術特點如下:

基於多核架構的並發控制技術、NUMA-Aware存儲引擎、SQL-Bypass智能選路執行技術,釋放處理器多核擴展能力,實現兩路鯤鵬128核場景150萬tpmC性能;

支持RTO<10S的快速故障倒換,全鏈路數據保護,滿足安全及可靠性要求;

通過智能參數調優、慢SQL診斷、多維性能自監控、在線SQL時間預測等能力,讓運維由繁至簡。

華為於2020年6月開放了openGauss社區版本源代碼(https://opengauss.org),鼓勵有能力的合作夥伴推出基於openGauss的數據庫,共同繁榮數據庫產業生態。

目前,華為雲已經推出了基於openGauss內核,增強分佈式能力的商業版本GaussDB(openGuass),後續也會有更多商業合作夥伴加入。

需要強調的是,openGauss是開放的生態:架構開放、代碼開放、技術開放和社區開放,不會因為是華為主推的,就讓數據庫生態從封閉的Oracle走向另外一個封閉的“新的Oracle”。 openGauss這種方式,能讓更多“同道中人”一起來解決缺陷,理解這個架構,從而維護起來更加方便。

對於企業來講,只有選擇開放的生態,才能讓自己的業務具備更好的連續性,如果從一個封閉的生態改造為另外一個封閉的生態,本質上並沒有解決業務連續性的問題。

畢竟不開放的生態是沒有活力的,數據庫軟件尤甚。

點擊關注,第一時間了解華為雲新鮮技術~