改寫數據庫曆史的中國人
本文講的是改寫數據庫曆史的中國人
數據庫好像從來都不是中國人的強項。但轉機出現在4年前。
4年前,阿裏巴巴宣布向天弘基金注資,成為餘額寶的資金管理單位,如今天弘基金管理的資金超過15186億,蟬聯行業第一,改變了整個基金行業的市場格局。
4年前,由螞蟻金服、騰訊、中國平安等發起成立的互聯網保險公司眾安保險成立,如今的估值已經超過800億港元,再過幾天就將在香港IPO募集資金超過100億港幣。
是的,互聯網正在改變所有行業,同樣包括監管最為嚴格、對數據庫要求也最為嚴格的金融行業。如今,當9月21日阿裏雲全新一代雲數據庫產品POLARDB在公開的跑分測試上,讀性能超過100萬QPS、寫性能超過13萬TPS,全麵超越AWS Aurora站立在世界之巔的時候,在高性能通用數據庫這塊高地上,第一次有了中國麵孔。
眾所周知,“IOE”中最難去的是“O”,因為Oracle至今在中國商業交易型數據庫市場仍然擁有超過50%的絕對多數市場份額。
而在對交易型數據庫要求最嚴格的金融領域,特別是國有四大行的核心係統,又都是IBM DB2數據庫+IBM大型機/小型機的天下。就連DB2的小弟Informix,對國內數據庫廠商來說都如獲至寶——筆者還記得南大通用CTO在2015年發布基於Informix的GBase 8t的時候,很負責任地說,我們一年能研究透20%就很不錯了——那時候,筆者真的有些絕望,看來中國數據庫技術真的落後IBM、Oracle二十年!
但是,世事難料,4年前的一天上午,工行在全國多地的櫃台、ATM、網銀業務出現故障,導致1個多小時的故障。也就是在那個時間點之前不久,眾安保險成立、天弘基金管理餘額寶,互聯網至少已經攻破金融行業的兩大領域——保險、證券。
互聯網為傳統行業帶來的不僅僅是商業模式,更重要的是技術革命。
“傳統金融是非常保守的,但是互聯網總有一個膽大的,比如說這兩天IPO的眾安保險,第一天就決策把整個係統放在阿裏雲雲數據庫上。”阿裏雲數據庫業務資深總監餘鋒介紹,“雖然幾年前我們對金融業務的理解、對穩定性的理解還遠遠不夠,讓他吃了很多苦頭,但站在今天的業務規模看來,正是因為架構上的領先,才支撐了它的迅速發展。”
如今交易金額已經突破了萬億規模、成為了全球最大貨幣基金的餘額寶,在2013年6月上線之初還是采用傳統底層技術架構,但業務在最初短短半個月就增長了14倍,每晚清算的時間迅速從一小時變成通宵達旦。這樣的擴張速度,如果采用傳統IT的方式擴容,今天單單IT係統的采購費用就會讓天弘基金不堪重負。
正是這樣的契機,給了阿裏雲POLARDB數據庫成長的機會。
“我2010年剛來的時候,我們一票人關在小黑屋裏,你讀一塊、我讀一塊,然後大家來分享一下……然後大概一兩年以後,我們把核心數據庫給換了……再過一兩個月,我們覺得還不錯嘛,就開始把我們的能力產品化。”餘鋒回憶。
其實阿裏雲的數據庫研發是從自家的應用需求開始的,研習成熟商業數據庫並開始自研商業交易型數據庫,比南大通用早了整整5年,比浪潮早了6年。
原因很簡單,因為互聯網的高並發,遠遠超過以往任何一個傳統行業的高並發——如果互聯網企業像傳統行業一樣照搬國外成熟的商業數據庫和高可靠的小機服務器和存儲設備,那麼高昂的與日俱增的IT成本,會讓這些依靠風投度日的互聯網企業很可能永遠也等不到盈利的那一天。
阿裏雲數據庫掌門餘鋒
“POLARDB的研發始於3年前。我們是通過在一個主庫下創建更多的存儲節點,讓存儲節點承擔負載壓力來解決問題的。”餘鋒所說的其實就是第三代分布式共享存儲架構POLARSTORE,他解釋說,“因為過去在傳統架構體係下,創建讀庫需要數據複製的過程,10TB數據即便用最高速的網絡跑,都需要70個小時。我們采用了共享存儲架構——因為數據不需要再搬動,很多事情變得非常簡單。”
但共享存儲架構說起來簡單,實際上背後卻非常複雜。據說有個從來都是主動追著產品經理要任務的研發同學,這次負責POLARDB的售賣係統也經常被搞得抓狂,因為POLARDB的彈性售賣接入實在是太複雜了,經常一天編程測試下來,有幾十個bug要解。但最終,一個個bug都被攻克下來,這需要的不僅僅是堅持,更需要勇氣。
另一位研發同學負責做PFS,需要驗證創建POLARDB實例的全鏈路功能,就必須搞定分布式文件係統,但阿裏雲當時在PFS上的積累並不深,大家心裏都沒底,於是準備了備選的NFS方案。沒想到這位同學帶著兩三個實習生,隻花了兩三周時間就把硬骨頭給啃下來了,按照計劃完成了創建主實例和隻讀實例的任務。
到如今,餘鋒現場演示的主實例創建、數據庫加壓、創建隻讀存儲節點、壓力被存儲節點分擔的整個過程隻需要3分鍾時間。從傳統架構70小時,到今天的3分鍾,得益於共享存儲的架構。而這,如今已經是經過實踐證明的低成本解決方案。
”我覺得阿裏雲工程師團隊特別不容易的一點,就是隻要今天有這樣一個契機,整個團隊就有這樣的勇氣去克服任何困難。”餘鋒由衷地說道,“他們大多非常年輕,也非常拚命,願意去花時間去琢磨。所以我其實蠻為這個團隊自豪的。”
其實,POLARDB的原理並不複雜。阿裏雲數據庫產品總負責人張雲楊介紹說,POLARDB其實就是采用了一種計算和存儲分離的架構——DB運行在計算節點,計算節點組成了一個計算資源池;數據都放在存儲節點上,存儲節點組成了一個存儲資源池。
如果CPU和內存不夠了,就擴充計算資源池;如果容量或者IOPS不夠了,就擴充存儲資源池,兩個池子都是按需擴容。而且存儲節點和計算節點可以分別向兩個方向優化,存儲節點會選擇低配的CPU和內存,提高存儲密度,而計算節點可以選擇小容量、低配的SSD作為操作係統和日誌盤,上多路服務器增加CPU的核數。
眾所周知,關係型數據庫是IO密集型的應用,IO性能的提高對數據庫的性能提升至關重要。在POLARDB裏,為了追求更高的性能、更低的延遲,阿裏雲數據庫團隊大膽拋棄了Linux內核提供的各種機製,比如塊設備、各種文件係統例如ext4、TCP/IP協議棧和socket編程接口等,而選擇了另起爐灶。最終,POLARDB實現了一整套在用戶態運行的IO和網絡協議棧。
比如,POLARDB用戶態協議棧解決了內核IO協議棧慢的問題。這種技術實現最大化的和高速設備進行性能交互,實現一顆CPU達每秒約20萬次IO處理的能力,並且保持線性的擴展能力,也就意味著4顆CPU可以達到每秒80萬次IO處理的能力,在性能和經濟型上遠高於內核。
網絡也是類似的情況。過去傳統的以太網,網卡發一個報文到另一台機器,中間通過一跳交換機,大概需要一百到兩百微秒。POLARDB支持ROCE以太網,應用程序通過RDMA網絡,直接將本機的內存寫入另一台機器的內存地址,或者從另一台機器的內存讀一塊數據到本機,中間的通訊協議編解碼、重傳機製都由RDMA網卡來完成,不需要CPU參與,使性能獲得極大提升,傳輸一個4k大小報文隻需要6、7微秒的時間。
如同內核的IO協議棧跟不上高速存儲設備能力,再一次的,內核的TCP/IP協議棧跟不上高速網絡設備能力,被POLARDB的用戶態網絡協議棧代替。這讓POLARDB完成了6倍性能於MySQL的壯舉。
不僅如此,得益於分布式共享存儲,POLARDB還實現了OLTP(在線事務處理)與OLAP(聯機分析處理)一體化的數據庫係統整體設計。這種HTAP(混合交易/分析處理)數據庫實際上代表了企業級數據庫的未來,因為它解決了企業核心應用以往難以實時計算分析的難題,不僅與如今聲名鵲起的SAP HANA的功能類似,而且在OLTP性能上也不輸於Oracle。同時由於分布式共享存儲成本的下降,使得POLARDB在價格上得以與RDS看齊。
至此,阿裏雲數據庫家族已完成世界上主流的關係型、鍵值型、文檔型、搜索型、時序型、列式數據庫引擎的布局, 形成HybridDB、HiTSDB、OpenSearch等全線數據庫產品及工具,領先行業進入第三代可靠性方案,采用三機房強製同步機製,以基礎版、高可用版、金融版三大場景實例,護航企業數據安全。
可以說,阿裏雲數據庫改寫了商業數據庫的曆史——基於新的3DXpoint存儲介質、NVMe SSD和RDMA網卡等最新的軟硬件優化技術,實現了低成本與高性能的突破。在標準場景下,性能是MySQL的6倍、單實例實現100T級存儲容量、實現AWS Aurora性能1.2倍的POLARDB,已經成為世界級的雲數據庫引導者。
據悉,阿裏雲數據庫產品團隊將在2017雲棲大會上持續發力,
舉辦8大數據庫專場,將技術紅利再次深度釋放,
並宣布重磅產品升級和開源技術,回饋用戶和社區。
此外,還有業內知名的數據庫創始人、專家站台演講。
來源:科技看門道
本文作者: TechGate
本文原標題:改寫數據庫曆史的中國人
最後更新:2017-09-28 15:03:34