改寫資料庫歷史的中國人

yq傳送門發表於2017-09-28

本文講的是改寫資料庫歷史的中國人

資料庫好像從來都不是中國人的強項。但轉機出現在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大資料庫專場,將技術紅利再次深度釋放,
並宣佈重磅產品升級和開源技術,回饋使用者和社群。
此外,還有業內知名的資料庫創始人、專家站臺演講。

點此免費試用雲資料庫POLARDB

來源:科技看門道
本文作者: TechGate
本文原標題:改寫資料庫歷史的中國人


相關文章