大數據“復活”記
1290
2025-03-31
GaussDB,不僅蘊含著華為對數學和科學的無限敬畏,也承載著華為對基礎軟件的堅持和夢想。12年,歷經坎坷,華為最終在被譽為基礎軟件“皇冠上明珠”的數據庫領域一舉突圍,破繭成蝶。
(全文共4578字,閱讀大約需要10分鐘)
5月15日,華為常務董事、ICT戰略與Marketing總裁汪濤在眾多國內外媒體見證下,正式面向全球推出了GaussDB數據庫。
近日,GaussDB研發團隊的多位骨干成員與筆者展開了深入交流,介紹了GaussDB的來龍去脈,以及背后艱辛的研發故事。
其實,GaussDB并非是一個產品,而是系列產品的統稱,目前GaussDB至少包含有3款產品,有面向OLTP的數據庫,面向OLAP的數據倉庫,還有面向事務和分析混合處理的HTAP數據庫。
做數據庫內核開發如在刀尖上跳舞
做數據庫內核開發如在刀尖上跳舞,壓力很大,但凡在內核架構與機制制定上有一絲沒有考慮清楚,那么上線就一定會出問題,這會導致嚴重后果,因為一旦確定的方向進行不下去,就會導致推倒重來。一位核心研發工程師對筆者說。
當時,華為決定研發內存數據庫的想法并不高大上,而是很單純,完全不是外界所猜想的搞個數據庫去售賣并干掉誰,純粹只是因為在電信計費領域,華為解決方案找不到能與之較好契合的數據庫,僅此而已。
眾所周知,電信行業對數據庫要求較高,尤其是可用性,定制化需求較多,涉及改動工作量大,而采用國外數據庫,讓原廠來配合改動,人家未必會配合。因此,無奈下,華為被迫走上了開發數據庫的道路,以此來提升解決方案的競爭力。
不過,2007年的GMDB并沒有取得大規模商用,只在小范圍內進行試用,但這個版本卻鍛煉了一大批人。當時,國內對數據庫內核開發知之甚少,有經驗者寥寥,都是摸著石頭過河。
但有苗不愁長,到了2010年,華為數據庫研發團隊開始對2007年版本進行全面重構,并寫下了重構版本的第一行代碼:“typedef struct st_database{...}database_t;”,數據庫對象的定義。
從這個版本開始,華為數據庫的定位已經不再局限于內存數據庫,而是在向通用關系型數據庫逐漸轉變,重構過程中,開始融入大量非內存數據庫的特性,這就是GaussDB OLTP的前身。
重構后的版本,質量上取得了顯著提升,2012年,GMDB開始大規模商用,主要應用于電信計費領域。同時,在華為內部,眾多配套的解決方案也開始使用GMDB。
對于每一個剛誕生的新產品,降落傘自己先跳,“-”一定是華為自己先吃。一位核心研發工程師對筆者說。
GaussDB對外輸出之前,華為也是從服務內部客戶開始。但在華為,內部客戶遠比外部客戶更苛刻更殘酷。“往往只要有一點不滿意,內部客戶就會直接一個郵件捅到總裁或副總裁那里,連個喘息的機會都不給你,那是真的要命啊!”,一位核心研發工程師心有余悸地回憶說。在服務內部客戶的過程中,GaussDB研發團隊總是膽戰心驚。
華為強大的研發平臺為Gauss OLTP數據庫的產品質量提供了強有力的保障。在軟硬件基礎設施方面,華為過去幾十年的積累非常深厚,有著整套完整的標準流程和研發支撐體系。Gauss OLTP數據庫首席架構師告訴筆者,高手畢竟是少數,一個產品的開發不能完全依賴編碼高手,在團隊作戰的時候,一個大的研發平臺至關重要,這就是華為數據庫的最大優勢。
2017年,華為與招商銀行開始就GaussDB進行聯合創新;2018年3月,Gauss OLTP數據庫開始在招商銀行綜合支付交易系統成功上線投產,順利承接招商銀行?“手機銀行”和“掌上生活”兩大App交易流水流量,日均請求量高達8500萬,峰值TPS達到3500,截至目前,系統穩定運行。
如今招商銀行的信用卡風警系統、零售實時風險警示系統、手機銀行收支賬單系統、一網通用戶日志系統、客戶經理平臺系統、供應鏈金融服務平臺系統、分布式交易鏈路追蹤系統等多套業務系統已進入對接開發階段,預計2019年底前將有17套系統采用GaussDB并投產上線。
MPP 分布式并行踩過的坑
華為真正想做數據庫,把數據庫作為一個完整的產品來做,其實是始于2011年底。當時,華為成立了2012實驗室,也有了高斯實驗室和Gauss DB。
就在這年,華為同時啟動了面向OLAP數據庫的研發預演,并足足用了3年的時間來預演代碼和驗證架構的可行性。研發團隊分析了業界數據庫相關理論和技術,在基于傳統關系型數據庫的SQL引擎和事務強一致性等基礎上,進行了分布式、并行計算的改造。2014年,孵化出GaussOLAP數據庫第一個產品版本。
“最初,Gauss ?OLAP數據庫采用的是SCTP通信協議。當時,工商銀行的EDW數據倉庫已經有上百個節點,再往上擴容,通信就面臨很大的挑戰”,Gauss OLAP數據庫的一位核心研發工程師說。
因為,研發團隊在實驗室測試發現,隨著集群的擴大,SCTP協議存在BUG,問題嚴重,一方面是穩定性,通信變得很不穩定,丟包嚴重;其次是性能,在大壓力下,性能變得非常不穩定,而且存儲空間已經達到70%了,照這樣下去,?再有幾個月集群空間肯定就不夠用了,業務就會停擺責任之大,誰也承擔不起。怎么辦?
經過與客戶溝通,工商銀行要求華為GaussOLAP數據庫團隊必須盡快擴容一倍以上的節點。
此時,整個研發團隊的壓力可想而知,團隊內部經過了無數次激烈的討論后,最終決定采用自研的多流代理通信技術重構解決該問題。而這一重構,前后就花了半年多時間,最終擴容成功,確保了工商銀行業務的穩定運行。
這樣的故事,在Gauss ?OLAP數據庫產品化的過程中不勝枚舉。“沒有以客戶為中心的理念,沒有像工商銀行這樣優質客戶的積極反饋與配合,就不會有今天成熟可靠的Gauss OLAP數據庫”,這位工程師說。
而在內核研發過程中,對研發團隊而言,最大的痛苦莫過于完全無法預知外部客戶會怎樣去使用GaussDB,客戶并不會像內部客戶嚴格按照規范來,因此,當出現問題時,定位問題、復現問題就顯得尤為重要,因為,只有定位到問題才能對癥下藥,如果連故障原因都找不到,解決問題也就無從談起。
華為在數據庫內核構建中,有著非常嚴格的要求,一旦發現的問題被解決后,一定要復盤,解決問題一定是經過嚴格推導出來的,如果問題解決過程含糊不清,或稀里糊涂地把問題解決了,這在華為是絕對不行的。
在所有測試中發現的問題,規范要求都必須要放入CI(數據庫用例全集)里,這樣CI就會被不斷補充。“CI就像一道‘門禁’,數據庫每一個版本的發布,必須要通過十年所積累的所有用例,只要一個沒通過,就甭想發布。”
讓工程師們印象最為深刻的是一次定位分布式事務一致性問題,?各種DDL, DML?高并發執行,?每隔幾分鐘,隨機Kill?數據節點進程,驗證實時校驗數據的一致性長期穩定運行。
開始一切正常,但就在第17天的時候,測試發現有瞬間數據不一致問題,Log里并沒有足夠定位信息,也無法復現,定位了好幾天沒有進展,存儲引擎團隊的核心開發人員都很沮喪。
于是團隊自行封閉會議,開始對MVCC機制,CSN可見性判斷邏輯, Prune清理記錄歷史版本的邏輯做了逐行代碼排查分析,結合Log,?模擬并行執行的時序,最終找到了根因,Prune記錄的歷史版本過早導致的問題。
也正是基于此,促使Gauss OLAP數據庫團隊開始思考并發場景測試方法如何才能更有效,因為是并發時序問題,出問題的時間窗口是很難卡到的,要在代碼里模擬觸發隨機異常且控制其他線程的時序,才能讓測試覆蓋更全面,而這種測試方法幫助研發團隊發現和解決了很多問題。
2017年,華為又啟動了面向事務和分析混合處理的數據庫研發。2018年,Gauss? HATP數據庫問世,并成功落地中國民生銀行。據悉,民生銀行采用了GaussDB分布式數據庫+ARM服務器的全棧解決方案,從數據庫層面解決了可擴展性問題,降低了應用分布式改造的難度,已應用于一卡通、貴金屬模擬交易等交易類系統,是國產數據庫在銀行交易類系統的首次商用。
邏輯集群差點與GaussDB失之交臂
GaussDB有一個特性,叫邏輯集群,可以實現多個業務系統的統一管理,計算彈性共享。這是個對客戶非常有價值的特性,也符合客戶云化多租戶的業務演進趨勢。但就是這樣一個非常有價值的特性,前期的規劃也是一路坎坷。
這一個特性最初由某個核心工程師提出,起初并不為團隊一些成員所認可,認為這個特性并沒有什么價值。
后來,GaussDB產品管理團隊經過大量客戶的走訪,對客戶業務系統的痛點、需求、以及未來發展趨勢進行了詳細的梳理,發現隨著海量數據的爆炸式增長,數據分析的訴求越來越旺盛,客戶分析系統也越來越多,面臨的運維管理復雜性也就越來越高。同時,云化也是一個趨勢,很多客戶希望能夠基于云化模式建設數據分析系統,能夠實現資源彈性共享,而邏輯集群的特性恰好可以完美地解決客戶的業務訴求。
最終,產品管理團隊內部達成一致。如今,這個特性已經成為GaussDB的一個非常有差異化競爭力的特性。
搞數據庫,華為是認真的
不過,華為將GaussDB定位于AI-Native數據庫而非Cloud-Native數據庫,這不僅是一種升維,更是源于GaussDB實現的兩大革命性突破:
?其一,AI in DB,首次將?AI 技術引入了GaussDB全系列產品內核中,實現自運維、自管理、自調優、故障自診斷和自愈,調優性能比業界提升60%以上。
?其二,DB for AI,GaussDB數據庫適配AI的運行。用戶可以通過數據庫語言來方便地使用AI,降低AI使用門檻,實現普惠AI。
同時,GaussDB 通過異構計算創新框架,充分發揮了x86、ARM、GPU、NPU多種算力優勢,在權威標準測試集TPC-DS上,性能比業界提升50%。
華為GaussDB希望通過智能、異構、融合這三個方面,重新定義數據處理平臺。
華為以硬件聞名,因此,很多人會質疑華為的軟件研發能力。事實上,在華為8萬多研發工程師中,有70%是從事軟件研發人員。這是汪濤在發布會上,接受媒體采訪時給出的數據。
華為在數據庫領域已經投入了千人左右的研發工程師,這一規模是很多數據庫廠商難忘項背的。不過,華為做數據庫并不是為替代誰,目前華為內部也在使用其他的數據庫,以后也依然會繼續用。華為做GaussDB數據庫的目的,一方面是對華為AI戰略的承接,一方面是為了構筑硬件+軟件+生態的戰略布局。
截止目前,華為GaussDB數據庫和FusionInsight大數據平臺已經應用于全球60個國家及地區,服務于1500多個客戶,擁有500多家商業合作伙伴,并廣泛應用于金融、運營商、政府、能源、醫療、制造、交通等多個行業。
GaussDB也具有云上的版本。目前華為云已經發布了13款數據庫服務,其中DWS數據倉庫服務就是GaussDB OLAP數據庫的云化版本,為行業客戶提供云上數據倉庫服務。華為還將繼續培養基于GaussDB數據庫的生態環境,讓更多的IT公司可以基于新數據庫開發相應的產品,讓GaussDB數據庫在更大范圍內得到應用。
寫在最后
還記得華為GaussDB發布視頻中的一行文字:向數學致敬、向科學家致敬。GaussDB,不僅蘊含著華為對數學和科學的敬畏,也承載著華為對基礎軟件的堅持和夢想。從GaussDB工程師身上,我們看到了一種“軸”,這是對技術的精益求精和偏執。正是這種“軸”,才能讓這群工程師們堅持12年,歷經坎坷,最終在被譽為基礎軟件“皇冠上明珠”的數據庫領域中一舉突圍,破繭成蝶。
數據庫 GaussDB 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。