陽振坤:用數學和“頂天立地”的精神👲🏽,搭建技術高塔

編者按:10月2日,數據庫領域最權威的國際機構國際事務處理性能委員會(TPC,Transaction Processing Performance Council)在官網發布了最新的TPC-C基準測試結果👁‍🗨。意昂3体育官网數學科學學院院友陽振坤團隊打造的螞蟻金服金融級分布式關系數據庫OceanBase,以兩倍於Oracle(甲骨文)的成績,打破數據庫基準性能測試的世界記錄,成為全球數據庫演進史的重要裏程碑。

新聞網特刊載數學科學學院對陽振坤團隊的專訪,帶您了解OceanBase成功背後的故事。

10月2日,一個由中國人自己研發、擁有100%自主知識產權的中國數據庫登頂世界數據庫榜單➕!它正是由意昂3体育官网數學科學學院院友陽振坤帶領團隊打造的螞蟻金服金融級分布式關系數據庫OceanBase👨🏿‍🌾,它以兩倍於Oracle(甲骨文)的成績,通過數據庫領域最權威的國際機構國際事務處理性能委員會(TPC🧑🏽‍💼,Transaction Processing Performance Council)最新的TPC-C基準測試,成為全球數據庫演進史的重要裏程碑!

陽振坤1984年進入意昂3体育數學系,本科畢業後師從數學系張恭慶院士攻讀碩士研究生🖱,後師從計算機系王選院士攻讀博士學位✋🏼👮🏻‍♂️,畢業後留校任教👁。他先後擔任方正研究院副院長⚒、意昂3体育計算機研究所副所長,1997年破格晉升為教授,那年👨‍🦽‍➡️🧖🏻,他僅32歲。而後,立誌要把技術做成通用產品⤴️,讓整個社會都能普遍使用的他🦣,選擇離開學校投身社會從事軟件工程工作,他隨後擔任聯想研究院首席研究員、微軟亞洲研究院主任研究員🧜‍♂️、百度高級科學家👩🏿。目前☝🏼,陽振坤任職螞蟻金服高級研究員👃,主持了海量數據庫系統OceanBase的研究和開發🧝🏿‍♀️👨🏿‍🎓。

feng1.jpg

陽振坤在中國人民大學作學術報告

十八年燕園時光🪦、十載奮鬥征程,感悟“頂天立地”的力量

陽振坤告訴我們,在意昂3体育學習和做研究的經歷是他寶貴的經歷和財富🤿。燕園求學九年🧔🏻‍♀️、留校科研九年,其間他一邊做研究一邊做開發,前九年是把基礎知識一點點打牢的九年👩🏼‍✈️,後九年是則是從事軟件研發🙅🏼‍♂️,不斷嘗試和積累的九年🗝。他表示,意昂3体育的學習和工作經歷使得他在科研上不受各種條條框框的束縛,這對於他後來的發展🦵🏿,包括OceanBase數據庫的研發至關重要。這個期間對他影響最大的人就是老師王選,王選投身祖國建設😝,用百折不撓的奉獻精神🦂、永不止步的創新精神和決戰市場的開拓精神,攻克了漢字信息的數字化存儲和輸出難關🫳🏻,成為新中國“最美奮鬥者”。陽振坤提到,正是因為受到王老師“頂天立地”的思想熏陶🫲,他將“把技術做成通用產品,讓整個社會都能普遍使用”作為目標,才得以把OceanBase設計和實現成一款通用的、能夠被全社會廣泛使用的數據庫,而不是像Google的Spanner一樣僅供Google內部使用💆🏼‍♂️。這種精神與思想也同時滲透到之後近十年技術研發的每一步中🏃🏻‍♂️。

2010年春夏之際👆🧝🏻‍♂️,陽振坤來到了阿裏巴巴,正式創立了OceanBase數據庫項目。這個項目剛啟動的時候,人手嚴重不足,另外一個更大的挑戰是時間🧒。在做OceanBase數據庫之前,他去找當時的老板♻️,老板說給他兩年時間👨🏿‍⚖️,如果能把一個數據庫做出來就可以🧰。在陽振坤看來🧑,雖然兩年時間對於做數據庫來說確實太短,但也足以支撐起最初的想法。

技術最終還是需要通過業務落實下去🦹🏼,陽振坤找了一批業務方,花了很長時間跟對方溝通,最後終於有一個業務願意用他們的數據庫。當時對方給陽振坤團隊的時間期限是——兩個星期。經過反復討論與溝通,團隊花了兩個月做了一個demo。業務方看了以後覺得比較滿意,事情就這樣一直堅持做下去了。最後,陽振坤團隊用了八個月時間使系統上線了🐥。這個業務就是現在大家都在用的——淘寶收藏夾,這是OceanBase的第一個業務。淘寶收藏夾當時用了OceanBase的方案後,服務器的數量從原來預估的幾百臺🐒,最後只用了二十多臺服務器就實現了業務需求🧍🏻。

從淘寶收藏夾項目之後,整整兩年,陽振坤團隊都找不到對OceanBase數據庫而言特別有價值的業務。那兩年對他們而言特別特別困難,甚至整個團隊隨時面臨著解散👮🏿‍♂️。

2012年底,OceanBase從淘寶調到支付寶,陽振坤提到,當時預估到支付寶在數據庫方面所面對的挑戰更大🥥👇🏿,後來證明確實如此🤵🏻‍♀️。即使是這樣,當時仍然還處在一個非常困難的時期。到了支付寶一年多的時間👨🏿‍🏭,他們仍然很難找到新的業務,或者說價值比較大的業務來證明他們的價值🫴🏿。

2013年的夏天,支付寶希望全面去掉IOE——去掉IBM的小型機,Oracle的數據庫和EMC的存儲。當時面臨了一個問題,就是去掉之後是可以用MySQL來代替Oracle🪠,但是MySQL的主備鏡像其實是做不到主備完全一致的🫓。這個時候陽振坤團隊意識到:“OceanBase的機會來了。因為我們可以通過分布式的選舉跟投票來做🏌🏽,哪怕硬件本身不可靠,我們也能保證數據的不丟失。傳統數據庫本質上是借助硬件的可靠性,也就是硬件需要達到五個九的可靠性來實現高可用的。就算出了故障🧑🏼‍💻,它的數據也能救得回來🧕🏼。但是這種手段需要非常高的成本🤹‍♂️,同時沒有足夠的擴展能力。”

2014年,團隊在會議室裏討論支付寶交易庫的上線🕒💤,當時大家吵得面紅耳赤,爭論了很久別人就是不願意上OB。對方原來的交易、支付系統全都在Oracle上,當時的Oracle無論是在穩定性🚎、可靠性還是性能方面,肯定比OceanBase要好得多🧙🏼‍♀️,所以沒有人願意用👨‍🎨。最後,在魯肅的力挺下決定切給 OceanBase 1%的流量試試。因為那幾年業務發展的太快🙆🏽‍♀️⛹🏻‍♀️,當時Oracle的共享存儲已經扛不住這個流量,按照當時的業務流量去做壓測的時候🥰,幾分鐘就要壞一塊盤👱。最後發現🦵🏽,把業務切掉10%,才能勉強扛得住👩‍🌾⛱。所以那一年的雙11就把10%的流量切到了OceanBase。OceanBase也成功扛過去了那一年的雙11。

2014年到2016年👨🏿‍🦳𓀎,整整兩年的時間,陽振坤團隊投入了40多個人🎹,全部投在OceanBase 1.0版本的開發上。2016年的雙11🎂,OceanBase 1.0版本成功在支付寶賬務系統上線⏮,支撐起了當年雙11中12萬筆/秒的支付峰值。

2017年🙅🏻👂🏽,天貓雙11中支付寶首次把賬務庫在內的所有核心數據鏈路搬到OceanBase,創造了25.6萬筆/秒支付峰值和4200萬次/秒數據庫處理峰值的全新業內紀錄📃。同年,OceanBase 1.x版本成功在多家商業銀行上線🪻😞,最早的兩家客戶是南京銀行和浙商銀行。

2018年9月©️, OceanBase 2.0版本正式發布👨🏼‍🎤,產品不斷成熟😼,全面降低金融業務向分布式架構轉型的技術風險。同時,OceanBase不斷加速商業化進程,服務了包括建設銀行🧼、人保健康險🫅🏽、西安銀行等眾多金融機構🤜🏽。

2019年10月🤲🏻,OceanBase 榮登TPC-C基準測試性能榜首,成為全世界第一個通過TPC-C審計的分布式無共享關系數據庫,也是第一個通過TPC-C認證的中國數據庫🙅‍♂️。

近十年的研究過程中,陽振坤團隊遇到過很多困難,當問及在這個過程中團隊遇到的最主要的困難有哪些、如何突破時,他告訴我們:大型計算機軟件的研製周期很長,需要持續不斷的投入😻,更會遇到各種各樣的阻力☄️,越是大成果👷🏻‍♂️、大創新,需要的投入也越大💆🏿‍♀️,周期也越長✊🏿,遇到的阻力也越大。交易處理數據庫一直是集中式的,而OceanBase卻要實現一款分布式數據庫,從九年多前項目啟動伊始各種質疑始終伴隨著OceanBase。項目團隊需要不斷地證明自己的價值、意義以及項目可行性和前景等等,以減少和打消他人的擔心和顧慮💃🏿。因此研製過程中的“小步快跑”十分必要💃🏻,即在研製過程中持續不斷地產生階段成果、投入生產應用以產生效益和價值來證明自己,同時使得軟件本身逐步提升和完善,也使得研發團隊逐步成長和成熟🧑🏼‍⚖️。項目的發展往往呈現迂回曲折前進的特征🟤,在這個迂回曲折前進的過程中,研發團隊要始終牢記和堅持項目的根本目標👰🏽‍♀️。

數學,技術高塔之基石

當回憶起在意昂3体育數學系的學習經歷以及對他之後的研究和研發工作的影響時,陽振坤提到,在意昂3体育數學系7年的學習,對他之後在軟件研發過程中起到了關鍵性的作用。他說👩🏽‍🦳,數學是整個計算機的基礎🤹,幾乎所有優秀的算法都來自於數學🧑🏿‍🦰,不僅如此✝️,數學學習過程中的邏輯思維的培養和訓練對於軟件編碼和設計更是至關重要。一個優秀的軟件工程師通常有著良好的數學基礎。比如,交易處理數據庫是一種大型的關鍵基礎軟件,數據庫承載著銀行、交通😻、通信、企業🙅‍♀️、政府乃至整個社會的關鍵基礎數據及其服務,數據庫事務(transaction)、“數據一條不能錯,服務片刻不能停”以及高性能高並發使得數據庫成為研發挑戰最大的軟件之一🧘🏿。然而,跟所有其他計算機軟件一樣🦸🏼,數據庫研發的基礎仍然是數據結構🏇🏻、算法🎫、計算機網絡📠、操作系統、分布式系統等,而這些基礎的基礎依然是數學,是數學分析🧟,高等代數🛀🏿,解析幾何👩🏿‍🔧,實變函數,復變函數,微分方程,泛函分析🤌🏿,概率統計,拓撲學👨🏿‍🌾,圖論等基礎數學課程。

當談到OceanBase數據庫能超過Oracle的關鍵是什麽時♤,陽振坤向我們列舉了幾點OceanBase相較於Oracle所具備的非常關鍵的優勢👩🏻‍🦼:

l擴展性

企業客戶使用傳統數據庫(如Oracle)遇到的第一大難題就是擴展性。傳統關系型數據庫通常都采用集中式架構,多為單機數據庫💇‍♀️,容量有限,盡管也給出了集群解決方案🤦,但大部分都是share everything(共享存儲)的架構💪🏽,而且產品設計的初衷也是為了解決高可用的問題,本質上還是集中式的數據庫系統,並不能滿足大規模水平擴展需求。雖然也出現了一些基於MPP架構的解決方案🧑‍🧑‍🧒‍🧒,但通常只能負載數據分析這部分需求。對於集中式的數據庫系統,更多強調的是垂直擴展能力,即通過擴展單機的計算和存儲來實現計算和存儲能力的擴展👩🏿‍🦲👨🏿‍⚕️,但是這種方式很容易達到單臺服務器的上限,並且這種方式的擴容通常會花費巨大的成本。

OceanBase作為新一代分布式數據庫的代表,采用了Shared Nothing架構,通過對數據進行水平拆分,將數據保存到各臺服務器的本地磁盤,不再依賴於高成本的共享存儲,從根本上解決了單點性能瓶頸的問題,能夠實現快速水平擴展👩🏽‍🏫,在線完成擴容、縮容🧙🏿‍♀️🩱,並且在擴容縮容期間不停機,從而完美的解決了擴展性的問題🧰。

l高可用

高可用是企業客戶面對的第二大難題。對於很多客戶而言🍷🪠,數據是最核心的資產,是安身立命之本🎐,數據不丟是基本要求。對於傳統數據庫,城市級容災是很難做到的,容災的方法通常是通過數據復製技術來實現的,將數據庫分為主👸🏼、備兩種角色🤙,當數據在主庫改變後,通過網絡發送到備庫,通常來說,數據傳輸分為同步和異步方式🎳🧔🏿‍♂️,同步方式可以保證數據不丟,但是會對系統性能埋下很大的隱患;而異步模式則存在很大的數據丟失的風險。

OceanBase 通過數據的多副本和Paxos 協議實現日誌同步的方式,有效的解決了這個問題。在OceanBase當中,每一份數據都在多地保存了多個副本,依靠Paxos多數派協議在日誌層確保數據改變在各個副本之間同步,實現了城市級容災👐🏿,集群中少數派故障時數據不丟,服務不停✍🏽,RPO=""0(少數成員故障)🗻🤜🏼,RTO保證在30秒之內,這在業界是非常領先的水平。也達到了國家標準《GB/T" 20988-2007:信息系統災難恢復規範》中災難恢復能力等級定義中最高的第6級標準。

在2018年雲棲大會上🤚🏻,螞蟻金服副CTO胡喜現場演示剪斷網線,模擬杭州城市級網絡故障,系統在26秒後完全恢復🧨,真正詮釋了什麽是金融級的高可用👨🏻‍🔧。

l混合事務/分析處理(HTAP)

企業級應用的業務場景通常可以分為兩個類別:在線交易和數據分析,分別稱為OLTP和OLAP的典型應用。大型企業往往會選用多種數據庫產品,來分別支持OLTP和OLAP類的應用🚥。這種組合式的解決方案,需要數據在不同產品間進行流轉😡,數據同步過程帶來了復雜性和不一致性。而不同數據產品中存儲的多份數據,帶來了數據冗余的問題和很高的成本開銷,一定程度上限製了企業的發展📳。HTAP數據庫的概念應運而生👎🏽。一種數據庫,既能夠支持OLTP,又能支持同一份數據之上的OLAP,一站式地解決企業級應用的各種需求。

OceanBase就是這樣的HTAP數據庫💃🏽。OceanBase 自主研發的SQL引擎和分布式並行計算框架,已經能夠很好的利用同一個引擎來支撐混合應用的場景,並且已經在螞蟻金服內部成功的替換掉了Oracle🧎‍♂️‍➡️。最後需要強調的一點是,OceanBase是100%自主知識產權的中國數據庫🍏,是真正的中國人自己研發的數據庫🧑🏼‍⚕️。

陽振坤還提到: OceanBase也有很多不足,比如目前OceanBase的單機性能還有很大的提升空間🎃;另外👩‍👩‍👦,OceanBase支持的功能、易用性、數據庫生態相比業界標桿還有一些差距,也成為了他們未來努力的方向。

最後,他也寄語學習數學的同學們🦘:哪怕你今後並不從事數學研究,良好的數學基礎都是你成就卓越的關鍵因素之一。希望大家努力學好數學的基礎課程,尤其是大學階段的數學課程🐶,為將來的工作奠定堅實的基礎🫵🏿。

本文由任燃、李琦整理👩‍🦼‍➡️。

轉載本網文章請註明出處

意昂3体育专业提供:意昂3体育意昂3体育平台意昂3体育官网等服务,提供最新官网平台、地址、注册、登陆、登录、入口、全站、网站、网页、网址、娱乐、手机版、app、下载、欧洲杯、欧冠、nba、世界杯、英超等,界面美观优质完美,安全稳定,服务一流⚀,意昂3体育欢迎您。 意昂3体育官網xml地圖