天天看點

特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行

特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行

2019 年 8 月,那條性能曲線平穩地出現在了杭州螞蟻總部的大螢幕上。

第一次 TPC-C 測試圓滿結束後,團隊成員歡呼雀躍,沉浸在登頂世界第一、超越老牌資料庫巨頭 Oracle 的喜悅當中。當時沒有人會想到,這個剛剛嶄露頭角的自研分布式關系資料庫 OceanBase,會在半年之後将自己的紀錄再度重新整理 11 倍。

特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行

登頂世界第一後,對 OceanBase 的質疑也接踵而來:

有人說,Oracle 的資料是 9 年前測的,它的硬體提升早已今非昔比;還有人指出,2013 年 Oracle 單台工作站跑分達到 800 萬,而它最多可将 27 台工作站聯在一起組成叢集。換句話說,Oracle 有實力跑出數千萬甚至上億的分數。

團隊心裡憋着一股氣。OceanBase 創始人陽振坤皺起眉頭,說道:“再測一次吧。”

2020 年 5 月,OceanBase 第二次參加 TPC-C 跑分測試,最終成績達到了 7.07 億 tpmC,新創造的紀錄是去年的 11.6 倍。相比于去年的興師動衆,杭州、北京兩個團隊晝夜攻堅,第二次測試就顯得輕車熟路、高歌猛進。用 OceanBase 技術專家曹晖的話說,這是因為“該踩的坑都已經踩過了”。

如今的盛況,在十年前簡直是一種奢望,OceanBase 這個由阿裡自研的分布式資料庫,剛起步時可說是舉步維艱。2010 年,陽振坤剛剛提出獨立開發資料庫的設想時,幾乎所有人都提出了質疑:“到底行不行?”

資料庫是企業的命脈,尤其是金融機構的資料庫,出一點問題就意味着巨大的損失。誰也不敢冒着風險使用不成熟的技術。

就在這樣無人問津的窘境中,OceanBase 從無到有,一點一點艱難地紮根和生長。從最初唯一的業務是淘寶收藏夾,到 2017 年雙十一承載包括整個支付寶賬務庫在内的核心系統,年輕的 OceanBase 逐漸成為阿裡業務的一大支柱。2019 年,這個誕生 9 年多的資料庫首次參加了全球事務處理性能委員會組織的 OLTP 資料庫權威測試 TPC-C,以 6088 萬 tpmC 的資料傲立世界之巅。

再到 2020 年 5 月,這個紀錄又被自己打破。

“第一次感覺不可思議,第二次就在意料之中了。”談及短短 8 個月内的兩次“高光時刻”,曹晖複述了自己從激動到平靜的心路曆程,“第二次測試的準備時間比較久,模拟的時間也足夠,不可預知性就會小很多。”

千帆過盡,隻餘從容。OceanBase 的兩度登頂之路,從驚險刺激到閑庭信步,離不開背後這些螞蟻技術人的傾力支撐。

01 “這不是一個人能幹成的事兒”

談及 OceanBase 的第一次測試,曹晖仍然心有餘悸。

“預審計前的那段時間是最困難的,真的快熬不住了。”曹晖告訴我們,從 8 月 1 日第一次上 200 台伺服器叢集開始,TPC-C 項目組幾乎有兩周的時間不眠不休。甚至在審計抵達杭州之後,OceanBase 的壓測曲線還是不滿足要求。組員白天和審計員溝通,晚上通宵排查問題,“每個人都在超負荷運轉”。

從調研階段的存儲空間摸底,到攻堅階段的性能優化,再到後來操作壓測叢集、與審計員溝通和修改測試腳本……身為 TPC-C 項目的核心技術人員,曹晖肩上的擔子不比任何人輕松。壓力最大的那段時間,他直到每天早上五六點鐘才離開公司。

逢山開路,遇水搭橋,在首次登頂世界冠軍後,團隊成員終于摸清了 TPC-C 嚴格測試流程中的那些坑。時隔半年,面對陽振坤定下的“小目标”,曹晖不怕了,他的心态很從容:“必須要做到,也能夠做到。”

壓測、修改、優化,一切按部就班。結果出來的那一刻,他的感受更接近于“釋然”,好像心裡的一塊石頭落地。

耀眼的成績背後,是一群齊心協力攻堅的戰友。說到自己所在的 OceanBase 團隊,曹晖用了“樸實”這個詞來形容。這和他給人留下的第一印象相一緻:樸實、耿直、穩重,不大會說漂亮話,唯有在涉及技術的話題上,他才打開了話匣子滔滔不絕。

“資料庫是一個底層的軟體,如果你太浮躁,就沒辦法靜下心來做一個基礎軟體的核心開發。”回顧 OceanBase 艱難的誕生史,這句話并不難了解:自研資料庫需要投入極大的人力和心力,而在短時間内根本看不到回報,相比之下,購買第三方資料庫無疑是更省時省力的選擇。在 OceanBase 立項之初,阿裡内部曾經爆發過極大的沖突,許多員工都不了解為什麼要自研資料庫,在他們看來,這無異于舍近求遠,引火燒身。

這條路有多難走,輝煌背後有多少苦難,OceanBase 團隊的同學們冷暖自知。

“這不是一個人能幹成的事兒。”曹晖說。

劉浩(OceanBase 技術專家)參與了兩次 TPC-C 項目,“在過去一年多的時間裡,有幸和這麼一個強悍的團隊一起參與了 OceanBase 兩次登頂 TPC-C 的全過程。TPC-C 登頂不僅僅是 OceanBase 每一位同學努力後的成果,也離不開很多兄弟團隊的支援和協助。”

這兩次 TPC-C 測試交出的漂亮成績單來自于 OceanBase 誕生至今走過的十年艱辛之路。這背後既有前輩元老的筚路藍縷,也有無數螞蟻技術人的薪火相傳。

02 “特别純粹的技術人”

“這是一個 Impossible Mission(不可能的任務)。”

這是 OceanBase 進階技術專家趙裕衆在剛看到 OceanBase 的性能曲線時,腦海裡蹦出來的第一個念頭。要在 TPC-C 測試中超過世界紀錄保持者 Oracle,彼時的 OceanBase 性能還有很大差距。

但團隊 Leader 陽振坤很樂觀:“我們的目标是服務全世界!”

服務全世界,做一個世界領先的分布式資料庫,這個宏大的願景從 2013 年趙裕衆加入團隊時起就鼓舞着他,也一路支撐着他度過那些難熬的時光——當然也包括初次參加 TPC-C 測試時,攻堅組成員把自己關在項目室裡,南北兩地同步,沒日沒夜地閉關加班。

問題大把大把地湧現,頭發也大把大把地掉,項目室牆上畫的性能曲線飛速上漲,幾乎每星期都會出現一個陡峭的提升。TPC-C 審計員來到杭州,項目組隻來得及請他吃了頓便當,然後又馬不停蹄地投入到性能優化工作中去。

特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行

終于,當那條壓測曲線平穩地出現在螢幕上時,所有人都松了口氣。

第一次看到成績時,趙裕衆難以抑制心中的激動,OceanBase 的測試資料達到了 Oracle 的兩倍,這項塵封 9 年的世界紀錄被阿裡人打破了。相較之下,第二次 TPC-C 測試的成績雖然更驚人,他的反應反而比較平淡,經曆過一次 Impossible Mission,他已經知道了自家資料庫的優勢所在。

“架構上來說,分布式具有更好的擴充性。”趙裕衆告訴我們,“單機資料庫無論硬體怎麼提升,性能都是有極限的,而分布式資料庫的擴充性可以說是無限的。”

也正是得益于自身的分布式架構,OceanBase 能把所有與高可靠性和資料一緻性相關的問題在資料庫核心層面解決,這使得 OceanBase 真正具備了高度內建、整體傳遞、對業務少侵入甚至無侵入的商業資料庫特征。通過原生的分布式設計以及 PAXOS 協定等,OceanBase 實作了強一緻、高可用、高性能,以及天然的高度可擴充性——這展現在第二次 TPC-C 測試中,所需的人力和優化工作相比去年有了顯著的減少。

OceanBase 團隊在這場世界級的争奪戰中立下了汗馬功勞。趙裕衆感慨:“這是一群特别純粹的技術人。”

在資料庫這條賽道上,這群純粹的家夥始終在追求夢想,追求卓越。陽振坤口中“做一個世界領先的資料庫”,也正是每一個 OceanBase 團隊成員心懷的信念。

03 “隻有阿裡這樣的公司才能做到”

我們問成肖君(OceanBase 資深測試開發專家),在 OceanBase 參與的兩次 TPC-C 測試中,哪個時刻讓他最有成就感。這名加入 OceanBase 團隊八年的老兵不假思索地說,是第一次在 TPC-C 官網上看到測試結果時,他急不可耐地把消息轉發到了自己的校友群。

群裡豔羨的聲音此起彼伏,也不乏遺憾的慨歎:“我們在學校裡是做不出這樣的成果的,隻有阿裡這樣的公司才能做到!”

成肖君告訴我們,登上 TPC-C 的排行榜是每一個資料庫從業者的夢想。作為全球最具公信力的聯機交易處理(OLTP)資料庫測試标準,TPC-C 測試是一款商業資料庫向業界證明實力最直接的硬名額。在此之前,TPC-C 的榜單長期被 Oracle、IBM 等外國廠商壟斷,從未出現過中國自研品牌的身影。

“學校裡有些老師,一輩子的夢想就是排進這個榜單。”成肖君說。

而夢想實作的道路勢必艱辛。TPC-C 測試需要模拟真實的交易環境,測試工具必須嚴格按照 TPC 委員會釋出的标準搭建,光是技術文檔就長達 100 多頁,再加上 Oracle 占領榜單巅峰已有 9 年之久,要達成夢想談何容易。

測試成績在官網公開之前,OceanBase 團隊眼中“看到的全是問題”,直到審計員抵達杭州的前一周,成肖君還在忙于突破測試開發方面的重重阻礙。火燒眉毛的他給陽振坤打電話:“審計員的行程能不能推遲一下?再給我一兩個星期吧!”

度過沮喪和焦慮,度過實作夢想的驚喜,成肖君的心态也跟 OceanBase 團隊的許多人一樣趨向平靜。看到 7.07 億次 tpmC 的最新成績,他笑言:已經沒有當初那種震撼感了。

“以前在 OLTP(聯機事務處理)這個領域,國内從來沒有資料庫上榜,那時候(我們奪冠)是一個開創性的工作。”成肖君坦言,“而從去年的測試報告裡,懂的人其實已經能夠看出 OceanBase 的優勢了。”言下之意,分布式架構成就了 OceanBase,第二次 TPC-C 測試無非讓這個優勢展現得更加清晰。

特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行

談及團隊,他脫口而出的第一個詞是“另類”:

“OceanBase 這個團隊挺‘另類’的,整體的技術氛圍非常好。”成肖君言談間既有戲谑,也有珍視,“現在要找到這樣一個能夠長期沉下來、專心做事情,并且把它做精、做深、做長遠的團隊,是非常難的。”

04 遠航

未來,OceanBase 還将走向何方?

“以前是跑一百米,現在是跑完一百米的基礎上,再跑一萬米。”OceanBase 資深技術專家莊明強這麼比喻。

兩次漂亮的 TPC-C 測試,不僅給團隊成員吃下了定心丸,也鋪平了 OceanBase 向外部發展的道路。成肖君給現在的 OceanBase 打 70 分:“目前已經及格了,下一步我們還要提升易用性,讓企業用更便宜的價格更容易地使用到它,服務到更多的外部客戶。”

走向外部,航向遠海,讓更多企業享受到技術的便利。在啃下 TPC-C 測試這塊硬骨頭之後,團隊要做的事情還有很多。

我們問曹晖,加入 OceanBase 團隊為他帶來了哪些變化?曹晖回答:主要是做事的态度變了。“我們團隊的氛圍是腳踏實地,做事的态度很嚴謹,從來不會想着走捷徑,而是真正地、徹底地、從根本上解決問題。我以前往往會投機取巧,想一些更 trick(技巧性)的方法去繞過測試标準,隻是為了測試而測試。”

像這樣“應試型”的優化方式也曾擺在 OceanBase 團隊眼前,但早在第一次參加 TPC-C 測試時,曹晖在冥冥中就有一種預感:“如果我們真的做了這些事,就絕對過不了測試。”

這個樸實、純粹又“另類”的團隊,不懂繞路,不玩 trick,隻懂得全身心撲上去解決問題。難關太多,就鎖在項目室裡晝夜調試、攻堅克難;人員規模不夠,就拉上螞蟻的多個兄弟團隊一起加班。今年 2 月,TPC-C 項目組獲得了螞蟻集團年度大獎 Super Ma,頒獎詞盛贊他們創造了“中國科技的驕傲”。幾位披荊斬棘的主将站在一起,他們曾在最艱難的時刻并肩戰鬥,終于在萬衆歡呼聲中捧起金杯。

如今,戰場初定,風波敉平,昔日的艱苦和忙碌都被抛在腦後。OceanBase 起錨,航向新的海域。

OceanBase 資料彙總

技術解讀、業務架構

會議直播、專題分享

這份彙總全方面整理了 OceanBase 相關資料,不管是業務負責人、技術負責人、一線資料庫運維、其他開發人員還是分布式資料庫開發者,都能從這些資料裡找到感興趣的東西。

識别下方二維碼立即檢視:

特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行
特稿 | OceanBase 連破紀錄:螞蟻技術人的砥砺前行