站長資訊網
        最全最豐富的資訊網站

        支付寶OceanBase登頂TPC-C:無關比賽,只是在追求自我的極致

          導語:

          1年前OceanBase團隊開了個會,定了個小目標,接下來的一年中這群工程師閉關攻堅。從掉頭發到睡幾個小時就跳起來看郵件,更甚至有人天天焦慮地捧著手機等郵件。

          1年后,螞蟻金服自研數據庫OceanBase登上TPC-C排行榜榜首,這一成績開創了多項世界先河:中國數據庫第一次登上TPC-C榜單;第1次基于公有云通用機型進行測試;分布式無共享關系數據庫第1次通過審計并取得創紀錄成績。今天,我們走到幕后看成績背后的光榮與夢想,艱辛與淚水。

          2010年,在全球OLTP數據庫權威測試TPC-C中,老牌數據庫巨頭Oracle取得了tpmC 3000多萬的成績,接近第二名IBM的3倍,堪稱“獨步武林”。此后的9年中,這一紀錄無人能破。

          在2011年,阿里巴巴內部一個數據庫團隊在備戰雙11時遇到了點麻煩,他們所支持的淘寶收藏夾業務只要流量一大就反復宕機。大戰在即,團隊全員立刻匯合,緊急修改代碼。

          今天看來這不過是個小問題,但在當時卻生死攸關。“要是解決不了這個問題,我們的項目就掛了。”

          螞蟻金服研究員楊傳輝當時就站在負責修改代碼的工程師背后,一行一行給他review。他的身旁站著陽振坤——他們的Leader,也是這個數據庫項目的創始人。

          他們的項目名叫OceanBase,第一次正式承接雙11流量時,這個數據庫還沒滿2歲,淘寶收藏夾是他們唯一支持的業務。

          那一年誰也沒有想到,九年之后,OceanBase一舉超越Oracle,登上了TPC-C benchmark的榜首。

        支付寶OceanBase登頂TPC-C:無關比賽,只是在追求自我的極致

          “聽到目標的那一刻驚呆了”

          TPC-C是全球目前最具公信力的聯機交易處理(OLTP)數據庫的功能與性能結合的測試標準。簡而言之,一款商業數據庫想要向業界證明自身實力,TPC-C測試是一項硬指標。TPC-C的排行榜長期被Oracle、IBM等外國廠商占據,從未出現過中國自研品牌的身影。

          很高的測試門檻,把眾多廠商擋在門外。首先,TPC-C測試需要模擬真實的交易環境去運行,整個測試的工具,包括所有鏈路在內,都需要自己搭建,而且要嚴格按照TPC委員會發布的標準來做——一份100多頁的PDF,事無巨細,全是英文。其次,交易數據庫性能的提升本身就是一件極為困難的事,Oracle已經站在巔峰,想超越它談何容易。

          “我們不是去年才想起要跑TPC-C測試的,我們從2010年立項第一天就研究過這個指標。”楊傳輝說。但是他們也清楚地知道,拿著尚未成熟的產品去跑測試是白費功夫:“三四十名可能都拿不到。”

          厚積薄發。這一“積”就是九年多。

          2018年8月,螞蟻金服技術專家鄒銀超和OceanBase團隊一起開了個會。在這場為籌備TPC-C測試而開的項目會上,楊傳輝定下了打榜“小目標”:超越Oracle的紀錄。但陽振坤的預期不止于此。“我們來創造一個Oracle永遠趕不上的新紀錄吧。”OceanBase之父拍板定音。

          鄒銀超感到震驚。Oracle 3000多萬的紀錄已經保持了九年,無人可以撼動,OceanBase起步至今也才九年,對于數據庫來說還非常年輕,第一次沖擊TPC-C紀錄,就直接劍指數據庫王者Oracle。

          “這個項目大概要做兩三年吧?”他當時如此揣測。

          按照既有的經驗,兩三年時間都很緊張。螞蟻金服資深技術專家蔣志勇作為OceanBase團隊的核心成員,在籌備的初期階段跟隨陽振坤先后拜訪了浪潮集團喬鑫總經理和清華大學陳文光教授,學習和了解TPC-C測試的相關流程。而為了做出符合TPC-C規范的測試工具,需要將大量的人力和資源投入到產品研發和改進方面。“不管怎么說,測試只是手段,做出更好的產品才是目的。”蔣志勇說。

          專攻測試工具的團隊很快組建起來,蔣志勇牽頭,成員人數一只手就數得過來。

        支付寶OceanBase登頂TPC-C:無關比賽,只是在追求自我的極致

          TPC-C項目北京團隊閉關攻堅

          技術攻堅組也組建到位,北京一個團隊,杭州一個團隊,各占一個項目室,開始閉關攻堅。

          其他各個團隊都伸出了援手:硬件團隊、中間件團隊、阿里云……DBA團隊和業務團隊也以極大的包容,在人手緊張資源不足的情況下,支持著OceanBase技術攻堅。

          困難雖多,但開弓沒有回頭箭。“螞蟻的技術人是使命必達的。”正如DBA團隊的資深運維專家師文匯所言,定下了世界第一的目標之后,所有人都會團結一致,就會傾盡全力去戰斗。“追求極致,沒有上限。”

          “審計員都沒見過的新玩意兒”

          TPC-C測試的流程中,非常重要的一環是審計員來現場審計,以確認測試的所有細節符合規范。審計員全世界只有三位,滿世界飛來飛去,日程緊張。

          鄒銀超來自數據技術部,在項目中負責硬件選型、系統性能優化和測試方案評估,幾乎每天都要和審計員進行郵件溝通。因為十多個小時的時差,他最常做的事就是凌晨把郵件發出去,睡幾個小時,然后跳起來看審計員有沒有回復。

          一開始的測試方案是基于物理機做的傳統方案。但到了2019年新年前后,策略發生了變化:準備使用阿里云ECS虛擬機進行測試。

          比起使用昂貴的專用設備,上云意味著大幅度降低實際測試成本,以及優秀的可擴展性。OceanBase的這個方案,硬件成本僅占18%,遠低于Oracle的硬件成本占比,但是在公有云上做TPC-C測試,前所未有。

          審計員對此表示出了強烈的興趣。分布式數據庫來測TPC-C,OceanBase已經是第一家了,以如此大規模的集群上云測試,更是聞所未聞。

          但是面對這樣一種全新的形式,審計員也很謹慎,每一個細節都“摳字眼”式地確認。“有時候我們所有測試都跑完了,審計員忽然指出‘這里不合規’,就又得重頭來過。”回憶起艱辛的溝通過程,蔣志勇苦笑。

          “來回溝通了三個月左右,因為拿不準會測什么和怎么測,每一種測試方案都要準備和溝通。”鄒銀超說,“天天焦慮地捧著手機等郵件。”

          更讓他們焦慮的事來了:到了2019年5月,整整一個星期,審計員沒有任何反饋。

          陽振坤保持淡定:“再等兩天。”

          兩天過去了,仍然杳無音信。團隊坐不住了,寫郵件過去詢問。這一次審計員回了一封極長的郵件,原來是因為OceanBase的測試方案從未有人做過,而且規模特別龐大,審計員自己也沒把握,專程去了一趟TPC組織總部,把方案提交給TPC-C技術委員會開會討論。

          討論的結果反饋到了陽振坤手中,他第一時間把消息發到了整個項目的每一個相關群里。“通過了!”測試方案最終獲得了TPC-C委員會的認可。“心頭的一塊大石頭總算落了地。”蔣志勇松了口氣。各個群里一片歡騰,但這還只是路程中的第一塊里程碑。

          “大家像戰友一樣,把后背交給對方”

          “聚到一個項目里,大家從肉體到心靈,都靠得更近了。”

        支付寶OceanBase登頂TPC-C:無關比賽,只是在追求自我的極致

          TPC-C項目杭州攻堅團隊

          螞蟻金服技術專家曹暉是早期就加入TPC-C測試項目的成員之一,這一年多來,他最常感到的就是“時間不夠用”。物理機換成虛擬機,單機50%的性能差距很快顯現出來,如何在短時間內找到優化點提升性能,成為團隊攻堅的重點任務。

          杭州閉關室的墻上畫著一張性能表,每周更新,這條性能曲線也成為團隊成員的“心情曲線”:“看著它像階梯一樣一步一步地走高,大家就非常高興;要是連續一段時間爬不上去,就要開始掉頭發了。”曹暉笑著說。

          掉頭發的不僅僅是OceanBase的攻堅團隊。師文匯和DBA團隊也每天都在“發愁”穩定性和研發效能。螞蟻最核心的業務全部都運行在OceanBase上,穩定性絲毫不容有失,但大量人力和資源投入到TPC-C項目后,支持和維護日常業務的重擔都落到DBA團隊和業務團隊肩上,工作量激增。

          “最緊張的是研發環境,如果出問題,很多業務開發都會受影響。”整整一個半月,DBA、交付、系統等團隊都在攜手應對這個問題,終于,風險排除了。

          TPC-C測試的結果公布后,陽振坤在群里向所有兄弟團隊表示感謝:“感謝大家對OceanBase的理解和寬容。”

          想要取得任何重大成就,一個團隊的力量始終有限,但百川匯海,聚沙成塔。“一場仗,一顆心。”楊傳輝用這六個字總結這場舉全員之力的聯合作戰,師文匯的說法更熱血也更感性一些:“勝則舉杯同慶,敗則拼死相救。大家像戰友一樣,把后背交給對方。”

          “從來沒見過這么平穩的曲線”

          7月底,性能攻堅告一段落,真正用于測試的大規模集群由阿里云準備到位,交到了項目團隊手中。曹暉被任命為“操作員”,掌控兩百多臺ECS云服務器。

          意想不到的事又發生了。之前在小規模集群上解決掉的問題,一上到大規模集群,又一一暴露出來。“壓力不均勻,抖動很厲害,還出現了不少完全沒預料到的問題。”蔣志勇說,“而且這還只是一些基礎問題,把它們解決掉之后,還得把曲線跑得很平穩才行。”

          按照TPC-C的要求,在測試取值的2小時之內,系統抖動不能超過2%。

          而此時距離審計員前來杭州現場審計,時間僅剩兩周。

          從拿到正式測試的大規模集群開始,大家就開始連軸轉。曹暉天天在群里“釘”人,他盯著200多臺云服務器的運行,只要發現問題,馬上“釘”到對應的同學,被“釘”的同學無論在杭州還是北京,第一時間抄起電腦就沖到閉關室。

          阿里云團隊也傾力配合,IaaS層的配置和性能的優化,問題一個一個地在他們的支持下被攻克。

          “想法很簡單,就是往前沖。沒有退路,很多崗位連backup都沒有。”

          沒有兩三年時間,只用了一年,OceanBase就迎來了TPC-C的最終大考。

          8月6日,TPC-C審計員抵達杭州螞蟻金服總部。

          “一邊很有信心,一邊又很緊張。”楊傳輝這樣形容當時的心情。信心來自于九年以來的積淀,他們自信已經具備了沖擊Oracle紀錄的實力;緊張來自于時間緊迫,最后針對大規模集群的調試只有兩周,會不會有不可預知的問題發生?

          測試工具啟動,OceanBase開始運行,預熱的時間中,審計員出去喝了杯咖啡。等他再回來時,性能曲線已經展示在了屏幕上——極其平穩,沒有絲毫抖動。

          經驗豐富的審計員大為驚嘆,因為從來沒有見過這么平穩的曲線:“Very impressive!”

          TPC-C的性能測試要求取值時段是2小時,OceanBase是8小時;TPC-C要求的抖動幅度是不超過2%,OceanBase是低于0.5%。

          現場審計結果獲得審計員認可,接下來又經過了一個多月的調優,9月底,OceanBase跑出了Final run結果。凌晨4點,曹暉和鄒銀超把最終報告發給審計員。

          10月2日一早,審計通過的結果出現在了TPC-C官網上——tpmC 6088萬,是Oracle紀錄的兩倍多,新的紀錄誕生了。

          “那一刻真沒有感覺到特別興奮,反而覺得,這就是理所當然的。”蔣志勇說。鄒銀超也有同感:“覺得就應該是這么優秀的。”

          “技術男不會特別情緒化。而且,我們在2014年就已經興奮過了。”楊傳輝說。這位從頭看著OceanBase誕生和成長的工程師經歷過更多風浪,最情緒化的反應留在了當年OceanBase第一次承接核心支付業務成功的時刻,“寫代碼這件事,只要堅持得足夠長,肯定能做出來,但是就是需要堅持,這種堅持可能以十年二十年為單位。到了真正做出來的時刻,就會覺得是理所當然的了。”

          “不管是在做TPC-C還是日常工作中,我覺得螞蟻的技術人是使命必達的,在做一件事情或者確定一個目標以后,傾盡全力去戰斗。就像TPC-C項目啟動的時候,陽老師說一定要做到世界第一,然后大家團結一致為了這個目標去努力。”師文匯說,“螞蟻技術人一直在追求極致,不斷的用創新去突破當前技術的限制,這個在雙十一、TPC-C測試以及日常的工作中都有所體現,比如想盡辦法去優化CPU的消耗、用各種方法降低RT時間。”

          “家人終于知道我是做什么的了”

          這個來之不易的世界第一,不僅足以讓每一個從事數據庫行業的工程師感到驕傲,也屬于為之努力過的每一位技術人。

          “比打破紀錄更重要的,是OceanBase為這個行業打開了全新的可能性。”蔣志勇說,“假如按Oracle的路子走,Oracle就是頂峰了,但OceanBase用分布式的方式去做這件事,取得了一個新的紀錄,讓市場和客戶有了新的選擇。”

          以這個世界第一為契機,平時不太接觸技術領域的人,也開始了解中國自研的數據庫。“我的家人終于知道我是做什么的了。”曹暉感慨說,“更讓我高興的是,他們已經開始給別人講什么是數據庫了。”

          楊傳輝把OceanBase登頂成功的報道轉到了朋友圈,他很快接到了母親的電話:“你朋友圈里發的那個‘世界第一’是什么?”七歲的女兒也興致盎然地來問他,他對孩子解釋說,這是一個跑得很快很快的東西。

          但每一位工程師都清楚地知道,“跑得很快”只是一個優秀數據庫的必要條件,而非充分條件。

          “數據庫像個跑車。極限速度取決于發動機,但跑車不僅僅只是一個發動機。OceanBase在TPC-C測試的成績,證明我們在‘發動機’性能方面達到了全球領先水平。但是數據庫的綜合能力方面,我們還有很大的進步空間。”

          下一步,OceanBase還要開發更豐富的功能,提升復雜查詢的能力,在同一套引擎里既支持OLTP又支持OLAP。此外還要基于上下游產業來營造一整套生態系統。這些就像是跑車的外觀、車內設施、配套服務等等,只有全都做好,才能打造出一款頂級跑車。

          此外,螞蟻金服還決定將自己開發用于TPC-C測試的工具開源。這意味著TPC-C將變成一種“普惠”測試。“任何一家公司只要在阿里云上租用資源,用這個開源工具跑測試,然后請審計人員來審計就可以了。”楊傳輝說,“關鍵只在于,你的產品夠不夠好。”

        支付寶OceanBase登頂TPC-C:無關比賽,只是在追求自我的極致

          2018雙十一中的OceanBase團隊

          OceanBase用了九年將自己的產品打磨至此,但創造一個新紀錄并不是它最終的目的。更重要的是,它為中國自研的數據庫鋪平了一條道路,任何人只要有信心和決心,都可以去挑戰這個行業的王者。

        特別提醒:本網內容轉載自其他媒體,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久综合久久自在自线精品自| 97精品人妻一区二区三区香蕉| 免费精品一区二区三区第35| 91视频精品全国免费观看| 国产在线精品无码二区| 国产精品亚洲专区在线观看| 欧美日激情日韩精品| 蜜臀久久99精品久久久久久小说 | 亚洲精品无码专区久久久 | 香蕉久久夜色精品升级完成| 无码精品国产VA在线观看| 精品精品国产欧美在线小说区| 欧美日韩精品久久久久| 无码精品黑人一区二区三区| 久久亚洲国产精品123区| 婷婷五月深深久久精品| 久久久久无码精品| 国产精品免费久久久久影院 | 国内精品久久久久久久久| 自拍偷自拍亚洲精品第1页| 精品人妻中文字幕有码在线| 亚洲日韩国产精品乱| 欧美精品亚洲精品日韩精品| 国产一区二区三区在线观看精品 | 亚洲欧洲精品成人久久曰影片| 九色精品视频在线观看| 国产亚洲精品不卡在线| 国产精品性爱| 久久亚洲精品人成综合网| 无码国产亚洲日韩国精品视频一区二区三区| 无码人妻丰满熟妇精品区| 亚洲欧美国产精品第1页| 亚洲国产主播精品极品网红| 免费欧美精品a在线| 国产亚洲婷婷香蕉久久精品| AV无码精品一区二区三区| 久久精品国产一区二区三区| 国内精品久久久久久久涩爱| 精品国产AⅤ一区二区三区4区| 国产精品福利片免费看| 国产偷国产偷高清精品|