簡介: 2019 年 8 月,阿里巴巴自研分佈式關係數據庫 OceanBase 圓滿經過 TPC-C 測試,超越老牌數據庫巨頭 Oracle,登頂世界第一。2020 年 5 月,OceanBase 再次登頂,將本身的紀錄刷新了 11 倍。這兩張漂亮的成績單來自於 OceanBase 誕生至今走過的十年艱辛之路,這背後既有前輩元老的篳路藍縷,也有無數螞蟻技術人的砥礪前行,薪火相傳。(文末福利:OceanBase 資料彙總)數據庫
2019 年 8 月,那條性能曲線平穩地出如今了杭州螞蟻總部的大屏幕上。性能優化
第一次 TPC-C 測試圓滿結束後,團隊成員歡呼雀躍,沉浸在登頂世界第1、超越老牌數據庫巨頭 Oracle 的喜悅當中。當時沒有人會想到,這個剛剛嶄露頭角的自研分佈式關係數據庫 OceanBase,會在半年以後將本身的紀錄再度刷新 11 倍。服務器
登頂世界第一後,對 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 的數據傲立世界之巔。spa
再到 2020 年 5 月,這個紀錄又被本身打破。
「第一次感受難以想象,第二次就在乎料之中了。」談及短短 8 個月內的兩次「高光時刻」,曹暉複述了本身從激動到平靜的心路歷程,「第二次測試的準備時間比較久,模擬的時間也足夠,不可預知性就會小不少。」
千帆過盡,只餘從容。OceanBase 的兩度登頂之路,從驚險刺激到閒庭信步,離不開背後這些螞蟻技術人的傾力支撐。
談及 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 誕生至今走過的十年艱辛之路。這背後既有前輩元老的篳路藍縷,也有無數螞蟻技術人的薪火相傳。
「這是一個 Impossible Mission(不可能的任務)。」
這是 OceanBase 高級技術專家趙裕衆在剛看到 OceanBase 的性能曲線時,腦海裏蹦出來的第一個念頭。要在 TPC-C 測試中超過世界紀錄保持者 Oracle,彼時的 OceanBase 性能還有很大差距。
但團隊 Leader 陽振坤很樂觀:「咱們的目標是服務全世界!」
服務全世界,作一個世界領先的分佈式數據庫,這個宏大的願景從 2013 年趙裕衆加入團隊時起就鼓舞着他,也一路支撐着他度過那些難熬的時光——固然也包括初次參加 TPC-C 測試時,攻堅組成員把本身關在項目室裏,南北兩地同步,沒日沒夜地閉關加班。
問題大把大把地涌現,頭髮也大把大把地掉,項目室牆上畫的性能曲線飛速上漲,幾乎每星期都會出現一個陡峭的提高。TPC-C 審計員來到杭州,項目組只來得及請他吃了頓盒飯,而後又快馬加鞭地投入到性能優化工做中去。
終於,當那條壓測曲線平穩地出如今屏幕上時,全部人都鬆了口氣。
第一次看到成績時,趙裕衆難以抑制心中的激動,OceanBase 的測試數據達到了 Oracle 的兩倍,這項塵封 9 年的世界紀錄被阿里人打破了。相較之下,第二次 TPC-C 測試的成績雖然更驚人,他的反應反而比較平淡,經歷過一次 Impossible Mission,他已經知道了自家數據庫的優點所在。
「架構上來講,分佈式具備更好的擴展性。」趙裕衆告訴咱們,「單機數據庫不管硬件怎麼提高,性能都是有極限的,而分佈式數據庫的擴展性能夠說是無限的。」
也正是得益於自身的分佈式架構,OceanBase 能把全部與高可靠性和數據一致性相關的問題在數據庫內核層面解決,這使得 OceanBase 真正具有了高度集成、總體交付、對業務少侵入甚至無侵入的商業數據庫特徵。經過原生的分佈式設計以及 PAXOS 協議等,OceanBase 實現了強一致、高可用、高性能,以及自然的高度可擴展性——這體如今第二次 TPC-C 測試中,所需的人力和優化工做相比去年有了顯著的減小。
OceanBase 團隊在這場世界級的爭奪戰中立下了汗馬功勞。趙裕衆感慨:「這是一羣特別純粹的技術人。」
在數據庫這條賽道上,這羣純粹的傢伙始終在追求夢想,追求卓越。陽振坤口中「作一個世界領先的數據庫」,也正是每個 OceanBase 團隊成員心懷的信念。
咱們問成肖君(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 還將走向何方?
「之前是跑一百米,如今是跑完一百米的基礎上,再跑一萬米。」OceanBase 資深技術專家莊明強這麼比喻。
兩次漂亮的 TPC-C 測試,不只給團隊成員吃下了定心丸,也鋪平了 OceanBase 向外部發展的道路。成肖君給如今的 OceanBase 打 70 分:「目前已經及格了,下一步咱們還要提高易用性,讓企業用更便宜的價格更容易地使用到它,服務到更多的外部客戶。」
走向外部,航向遠海,讓更多企業享受到技術的便利。在啃下 TPC-C 測試這塊硬骨頭以後,團隊要作的事情還有不少。
咱們問曹暉,加入 OceanBase 團隊爲他帶來了哪些變化?曹暉回答:主要是作事的態度變了。「咱們團隊的氛圍是腳踏實地,作事的態度很嚴謹,歷來不會想着走捷徑,而是真正地、完全地、從根本上解決問題。我之前每每會投機取巧,想一些更 trick(技巧性)的方法去繞過測試標準,只是爲了測試而測試。」
像這樣「應試型」的優化方式也曾擺在 OceanBase 團隊眼前,但早在第一次參加 TPC-C 測試時,曹暉在冥冥中就有一種預感:「若是咱們真的作了這些事,就絕對過不了測試。」
這個樸實、純粹又「另類」的團隊,不懂繞路,不玩 trick,只懂得全身心撲上去解決問題。難關太多,就鎖在項目室裏晝夜調試、攻堅克難;人員規模不夠,就拉上螞蟻的多個兄弟團隊一塊兒加班。今年 2 月,TPC-C 項目組得到了螞蟻集團年度大獎 Super Ma,頒獎詞盛讚他們創造了「中國科技的驕傲」。幾位披荊斬棘的主將站在一塊兒,他們曾在最艱難的時刻並肩戰鬥,終於在萬衆歡呼聲中捧起金盃。
現在,戰場初定,風波敉平,昔日的艱苦和忙碌都被拋在腦後。OceanBase 起錨,航向新的海域。