數據庫

河北十一选五的预测号码是几位数:華為“高斯”戰記

廣告
廣告

微信掃一掃,分享到朋友圈

華為“高斯”戰記
0 0

摘要:GaussDB,不僅蘊含著華為對數學和科學的無限敬畏,也承載著華為對基礎軟件的堅持和夢想。12年,歷經坎坷,華為最終在被譽為基礎軟件“皇冠上明珠”的數據庫領域中一舉突圍,破繭成蝶。

近期,美國下令封殺華為,不僅將華為列上“實體名單”,限制其在美貿易,還給華為的美國供應商下發禁令,要求中斷與華為的各項合作,這在全球范圍內掀起了滔天巨浪。

憤慨之余,我們不得不開始思考,當面臨核心技術被卡脖子的時候,當中國成本優勢在逐漸消失的今天,我們應該如何突圍?

5月15日,華為在數據庫領域投下了一顆重磅炸彈,引發了高度關注?;N穸?、ICT戰略與Marketing總裁汪濤在眾多國內外媒體見證下,正式面向全球推出了GaussDB數據庫。

歷時9年的研發和打磨,低調謹慎的華為終于掀開了GaussDB數據庫的神秘面紗,讓之走到了臺前。

華為做GaussDB的真正原因是什么?GaussDB是個怎樣的數據庫?又是怎樣煉成的? 近日,GaussDB研發團隊的多位骨干成員與筆者展開了深入的交流,介紹了GaussDB的來龍去脈,以及背后艱辛的研發故事。

其實,GaussDB并非是一個產品,而是系列產品的統稱,目前GaussDB至少包含有3款產品,有面向OLTP的數據庫,面向OLAP的數據倉庫,還有面向事務和分析混合處理的HTAP數據庫。

數據庫內核開發如刀尖上跳舞

做數據庫內核開發如在刀尖上跳舞,壓力很大,但凡在內核架構與機制制定上有一絲一毫沒考慮清楚,那么,上線就一定會出問題,后果嚴重。因為,一旦確定的方向進行不下去,就會導致推倒重來。一位核心研發工程師對筆者說。

2007年,因為電信實時計費項目困境,華為開始組織人手研發內存數據庫,項目代號GMDB,這是可追溯華為最早的數據庫研發記錄。

當時,華為決定自研內存數據庫的想法并不高大上,而是很單純,完全不是外界所猜想的搞個數據庫去售賣并干掉誰,純粹只是因為在電信計費領域,華為解決方案找不到能與之很好契合的數據庫,僅此而已。

眾所周知,電信行業對數據庫要求較高,尤其是可用性,定制化需求較多,涉及改動工作量大,而采用國外數據庫,讓原廠來配合改動,人家未必會配合。因此,無奈下,華為被迫走上了自研數據庫的道路,以此來提升自身解決方案的競爭力。

不過,2007年的GMDB并沒有取得大規模商用,只在小范圍內進行試用,但這個版本卻鍛煉了一大批人。當時,國內對數據庫內核開發知之甚少,有經驗者寥寥,都是摸著石頭過河。

但有苗不愁長,到了2010年,華為數據庫研發團隊開始對2007年版本進行全面重構,并寫下了重構版本的第一行代碼:

“typedef struct st_database{...}database_t;”

數據庫對象的定義。

從這個版本開始,華為數據庫的定位已經不再僅局限于內存數據庫,而是在向通用關系型數據庫逐漸轉變,重構過程中,開始融入大量非內存數據庫的特性,這就是Gauss OLTP數據庫的前身。

重構后的版本,質量上取得了顯著提升,2012年,GMDB開始大規模商用,主要應用于電信計費領域,同時,在華為內部,眾多配套的解決方案也開始使用GMDB。

對于每一個剛誕生的新產品,華為都不會先讓客戶當“小白鼠”,“狗糧” 華為一定是自己先吃,一位核心研發工程師對筆者說。

GaussDB對外輸出之前,華為也是從服務內部開始。但在華為,內部客戶遠比外部客戶更苛刻更殘酷?!巴灰幸壞悴宦?,內部客戶就會直接一個郵件捅到總裁或副總裁那里,連個喘息的機會都不給你,那是真的要命??!”,一位核心研發工程師心有余悸的回憶說。因此,在服務內部客戶的過程中,GaussDB研發團隊總是膽戰心驚。

為了讓Gauss OLTP數據庫的內核變得更穩定,研發團隊創造了最暴力的測試方法,并立下規矩,誰發現的問題,用例就用誰的名字來命名。在暴力測試方法及命名規則的雙重刺激下,從剛開始幾乎每半天就能測出問題,到之后一個周甚至一個月才能發現一個問題。正是這樣一步步的積累下來,讓Gauss OLTP數據庫的內核變得越來越強壯和穩健。因此,從2013年規模上線到2019年,6年的時間里,Gauss OLTP數據庫沒出過任何問題,這一點讓團隊成員極為自豪。

華為強大的研發平臺一直是外界所公認的,而正是基于強大的研發平臺為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年,孵化出Gauss OLAP數據庫第一個產品版本。

2015年,華為與工商銀行一起聯合創新,Gauss OLAP數據庫也開始在工商銀行內上線,并逐漸取代某國外品牌數據倉庫。從一開始的十幾個節點到現在的單個集群超過二百個節點,這大概是目前國內數據倉庫中最大的。事實上Gauss OLAP數據庫的產品交付過程也并非一帆風順,也是經歷了諸多磨難,尤其是在MPP大規模通信上踩過不少坑。

“最初,Gauss  OLAP數據庫采用的是SCTP通信協議。當時,工商銀行的EDW數據倉庫已經有上百個節點,再往上擴容,通信就面臨很大的挑戰”,Gauss OLAP數據庫的一位核心研發工程師說。

因為,研發團隊在實驗室測試發現,隨著集群的擴大,SCTP協議存在BUG,問題嚴重,一方面是穩定性,通信變得很不穩定,丟包嚴重,其次是性能,在大壓力下,性能變得非常不穩定,而且存儲空間已經達到70%了,照這樣下去, 再有幾個月集群空間肯定就不夠用了,業務就會停擺責任之大,誰也承擔不起。怎么辦?

經過與客戶溝通,工行要求華為Gauss OLAP數據庫團隊必須盡快擴容一倍以上的節點。

此時,整個研發團隊的壓力可想而知,團隊內部經過了無數次激烈的討論后,最終決定采用自研的多流代理通信技術重構解決該問題。而這一重構,前后就花了半年多時間,最終擴容成功,確保了工行業務的穩定運行。

這樣的故事,在Gauss  OLAP數據庫產品化的過程中不勝枚舉?!懊揮幸鑰突行牡睦砟?,沒有像工行這樣優質客戶的積極反饋與配合,就不會有今天成熟可靠的Gauss OLAP數據庫”,這位工程師說。

而在內核研發過程中,對研發團隊而言,最大的痛苦莫過于完全無法預知外部客戶會怎樣去使用GaussDB,客戶并不會像內部客戶嚴格按照規范來,因此,當出現問題時,定位問題復現問題就顯得尤為重要,因為,只有定位到問題才能對癥下藥,如果連故障原因都找不到,解決問題也就無從談起。

華為在數據庫內核構建中,有著非常嚴格的要求,一旦發現的問題被解決后,一定要復盤,解決問題一定是經過嚴格推導出來的,如果問題解決過程含糊不清,或稀里糊涂的把問題解決了,這在華為是絕對不行的。

在所有測試中發現的問題,規范要求都必須要放入CI(數據庫用例全集)里,這樣CI就會被不斷補充?!癈I就像一道‘門禁’,數據庫每一個版本的發布,必須要通過十年所積累的所有用例,只要一個沒通過,就甭想發布?!?/p>

讓工程師們印象最為深刻的是一次定位分布式事務一致性問題, 各種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%是從事軟件研發人員。這是汪濤在發布會上,接受媒體采訪時給出的數據。

華為在數據庫領域已經投入了千人左右的研發工程師,這一規模是很多數據庫廠商難忘項背的。不過,華為做數據庫并不是為替代誰,目前華為內部也在使用其他的數據庫,比如Oracle,SQL Server,MySQL等,以后也依然會繼續用?;鯣aussDB數據庫的目的,一方面是對華為AI戰略的承接,一方面是為了構筑硬件+軟件+生態的戰略布局。

截止目前,華為GaussDB數據庫和FusionInsight大數據平臺已經應用于全球60個國家及地區,服務于1500多個客戶,擁有500多家商業合作伙伴,并廣泛應用于金融、運營商、政府、能源、醫療、制造、交通等多個行業。

GaussDB也具有云上的版本。目前華為云已經發布了13款數據庫服務,其中DWS數據倉庫服務就是GaussDB OLAP數據庫的云化版本,為行業客戶提供云上數據倉庫服務?;菇絳嘌贕aussDB數據庫的生態環境,讓更多的IT公司可以基于新數據庫開發相應的產品,讓GaussDB數據庫在更大范圍內得到應用。

寫在最后

還記得華為GaussDB發布視頻中的一行文字:向數學致敬、向科學家致敬。GaussDB,不僅蘊含著華為對數學和科學的敬畏,也承載著華為對基礎軟件的堅持和夢想。

從GaussDB工程師身上,我看到了一種“軸”,這是對技術的精益求精和偏執。這正是這種“軸”,才能讓這群工程師們堅持12年,歷經坎坷,最終在被譽為基礎軟件“皇冠上明珠”的數據庫領域中一舉突圍,破繭成蝶。

老魚,企業級老編一枚,你若有故事,歡迎聯系!

何時使用5G和Wi-Fi 6?

上一篇

IDC:市場低迷,全球企業存儲營收降低

下一篇

你也可能喜歡

華為“高斯”戰記

長按儲存圖像,分享給朋友

ITPUB 每周精要將以郵件的形式發放至您的郵箱


微信掃一掃

微信掃一掃