ITBear旗下自媒體矩陣:

支付寶OceanBase登頂TPC-C:無(wú)關(guān)比賽,只是在追求自我的極致

   時(shí)間:2019-10-23 17:07:32 來(lái)源:互聯(lián)網(wǎng)編輯:星輝 發(fā)表評(píng)論無(wú)障礙通道

導(dǎo)語(yǔ):

1年前OceanBase團(tuán)隊(duì)開(kāi)了個(gè)會(huì),定了個(gè)小目標(biāo),接下來(lái)的一年中這群工程師閉關(guān)攻堅(jiān)。從掉頭發(fā)到睡幾個(gè)小時(shí)就跳起來(lái)看郵件,更甚至有人天天焦慮地捧著手機(jī)等郵件。

1年后,螞蟻金服自研數(shù)據(jù)庫(kù)OceanBase登上TPC-C排行榜榜首,這一成績(jī)開(kāi)創(chuàng)了多項(xiàng)世界先河:中國(guó)數(shù)據(jù)庫(kù)第一次登上TPC-C榜單;第1次基于公有云通用機(jī)型進(jìn)行測(cè)試;分布式無(wú)共享關(guān)系數(shù)據(jù)庫(kù)第1次通過(guò)審計(jì)并取得創(chuàng)紀(jì)錄成績(jī)。今天,我們走到幕后看成績(jī)背后的光榮與夢(mèng)想,艱辛與淚水。

2010年,在全球OLTP數(shù)據(jù)庫(kù)權(quán)威測(cè)試TPC-C中,老牌數(shù)據(jù)庫(kù)巨頭Oracle取得了tpmC 3000多萬(wàn)的成績(jī),接近第二名IBM的3倍,堪稱“獨(dú)步武林”。此后的9年中,這一紀(jì)錄無(wú)人能破。

在2011年,阿里巴巴內(nèi)部一個(gè)數(shù)據(jù)庫(kù)團(tuán)隊(duì)在備戰(zhàn)雙11時(shí)遇到了點(diǎn)麻煩,他們所支持的淘寶收藏夾業(yè)務(wù)只要流量一大就反復(fù)宕機(jī)。大戰(zhàn)在即,團(tuán)隊(duì)全員立刻匯合,緊急修改代碼。

今天看來(lái)這不過(guò)是個(gè)小問(wèn)題,但在當(dāng)時(shí)卻生死攸關(guān)。“要是解決不了這個(gè)問(wèn)題,我們的項(xiàng)目就掛了。”

螞蟻金服研究員楊傳輝當(dāng)時(shí)就站在負(fù)責(zé)修改代碼的工程師背后,一行一行給他review。他的身旁站著陽(yáng)振坤——他們的Leader,也是這個(gè)數(shù)據(jù)庫(kù)項(xiàng)目的創(chuàng)始人。

他們的項(xiàng)目名叫OceanBase,第一次正式承接雙11流量時(shí),這個(gè)數(shù)據(jù)庫(kù)還沒(méi)滿2歲,淘寶收藏夾是他們唯一支持的業(yè)務(wù)。

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

“聽(tīng)到目標(biāo)的那一刻驚呆了”

TPC-C是全球目前最具公信力的聯(lián)機(jī)交易處理(OLTP)數(shù)據(jù)庫(kù)的功能與性能結(jié)合的測(cè)試標(biāo)準(zhǔn)。簡(jiǎn)而言之,一款商業(yè)數(shù)據(jù)庫(kù)想要向業(yè)界證明自身實(shí)力,TPC-C測(cè)試是一項(xiàng)硬指標(biāo)。TPC-C的排行榜長(zhǎng)期被Oracle、IBM等外國(guó)廠商占據(jù),從未出現(xiàn)過(guò)中國(guó)自研品牌的身影。

很高的測(cè)試門(mén)檻,把眾多廠商擋在門(mén)外。首先,TPC-C測(cè)試需要模擬真實(shí)的交易環(huán)境去運(yùn)行,整個(gè)測(cè)試的工具,包括所有鏈路在內(nèi),都需要自己搭建,而且要嚴(yán)格按照TPC委員會(huì)發(fā)布的標(biāo)準(zhǔn)來(lái)做——一份100多頁(yè)的PDF,事無(wú)巨細(xì),全是英文。其次,交易數(shù)據(jù)庫(kù)性能的提升本身就是一件極為困難的事,Oracle已經(jīng)站在巔峰,想超越它談何容易。

“我們不是去年才想起要跑TPC-C測(cè)試的,我們從2010年立項(xiàng)第一天就研究過(guò)這個(gè)指標(biāo)。”楊傳輝說(shuō)。但是他們也清楚地知道,拿著尚未成熟的產(chǎn)品去跑測(cè)試是白費(fèi)功夫:“三四十名可能都拿不到。”

厚積薄發(fā)。這一“積”就是九年多。

2018年8月,螞蟻金服技術(shù)專家鄒銀超和OceanBase團(tuán)隊(duì)一起開(kāi)了個(gè)會(huì)。在這場(chǎng)為籌備TPC-C測(cè)試而開(kāi)的項(xiàng)目會(huì)上,楊傳輝定下了打榜“小目標(biāo)”:超越Oracle的紀(jì)錄。但陽(yáng)振坤的預(yù)期不止于此。“我們來(lái)創(chuàng)造一個(gè)Oracle永遠(yuǎn)趕不上的新紀(jì)錄吧。”OceanBase之父拍板定音。

鄒銀超感到震驚。Oracle 3000多萬(wàn)的紀(jì)錄已經(jīng)保持了九年,無(wú)人可以撼動(dòng),OceanBase起步至今也才九年,對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)還非常年輕,第一次沖擊TPC-C紀(jì)錄,就直接劍指數(shù)據(jù)庫(kù)王者Oracle。

“這個(gè)項(xiàng)目大概要做兩三年吧?”他當(dāng)時(shí)如此揣測(cè)。

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

專攻測(cè)試工具的團(tuán)隊(duì)很快組建起來(lái),蔣志勇?tīng)款^,成員人數(shù)一只手就數(shù)得過(guò)來(lái)。

TPC-C項(xiàng)目北京團(tuán)隊(duì)閉關(guān)攻堅(jiān)

技術(shù)攻堅(jiān)組也組建到位,北京一個(gè)團(tuán)隊(duì),杭州一個(gè)團(tuán)隊(duì),各占一個(gè)項(xiàng)目室,開(kāi)始閉關(guān)攻堅(jiān)。

其他各個(gè)團(tuán)隊(duì)都伸出了援手:硬件團(tuán)隊(duì)、中間件團(tuán)隊(duì)、阿里云……DBA團(tuán)隊(duì)和業(yè)務(wù)團(tuán)隊(duì)也以極大的包容,在人手緊張資源不足的情況下,支持著OceanBase技術(shù)攻堅(jiān)。

困難雖多,但開(kāi)弓沒(méi)有回頭箭。“螞蟻的技術(shù)人是使命必達(dá)的。”正如DBA團(tuán)隊(duì)的資深運(yùn)維專家?guī)熚膮R所言,定下了世界第一的目標(biāo)之后,所有人都會(huì)團(tuán)結(jié)一致,就會(huì)傾盡全力去戰(zhàn)斗。“追求極致,沒(méi)有上限。”

“審計(jì)員都沒(méi)見(jiàn)過(guò)的新玩意兒”

TPC-C測(cè)試的流程中,非常重要的一環(huán)是審計(jì)員來(lái)現(xiàn)場(chǎng)審計(jì),以確認(rèn)測(cè)試的所有細(xì)節(jié)符合規(guī)范。審計(jì)員全世界只有三位,滿世界飛來(lái)飛去,日程緊張。

鄒銀超來(lái)自數(shù)據(jù)技術(shù)部,在項(xiàng)目中負(fù)責(zé)硬件選型、系統(tǒng)性能優(yōu)化和測(cè)試方案評(píng)估,幾乎每天都要和審計(jì)員進(jìn)行郵件溝通。因?yàn)槭鄠€(gè)小時(shí)的時(shí)差,他最常做的事就是凌晨把郵件發(fā)出去,睡幾個(gè)小時(shí),然后跳起來(lái)看審計(jì)員有沒(méi)有回復(fù)。

一開(kāi)始的測(cè)試方案是基于物理機(jī)做的傳統(tǒng)方案。但到了2019年新年前后,策略發(fā)生了變化:準(zhǔn)備使用阿里云ECS虛擬機(jī)進(jìn)行測(cè)試。

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

審計(jì)員對(duì)此表示出了強(qiáng)烈的興趣。分布式數(shù)據(jù)庫(kù)來(lái)測(cè)TPC-C,OceanBase已經(jīng)是第一家了,以如此大規(guī)模的集群上云測(cè)試,更是聞所未聞。

但是面對(duì)這樣一種全新的形式,審計(jì)員也很謹(jǐn)慎,每一個(gè)細(xì)節(jié)都“摳字眼”式地確認(rèn)。“有時(shí)候我們所有測(cè)試都跑完了,審計(jì)員忽然指出‘這里不合規(guī)’,就又得重頭來(lái)過(guò)。”回憶起艱辛的溝通過(guò)程,蔣志勇苦笑。

“來(lái)回溝通了三個(gè)月左右,因?yàn)槟貌粶?zhǔn)會(huì)測(cè)什么和怎么測(cè),每一種測(cè)試方案都要準(zhǔn)備和溝通。”鄒銀超說(shuō),“天天焦慮地捧著手機(jī)等郵件。”

更讓他們焦慮的事來(lái)了:到了2019年5月,整整一個(gè)星期,審計(jì)員沒(méi)有任何反饋。

陽(yáng)振坤保持淡定:“再等兩天。”

兩天過(guò)去了,仍然杳無(wú)音信。團(tuán)隊(duì)坐不住了,寫(xiě)郵件過(guò)去詢問(wèn)。這一次審計(jì)員回了一封極長(zhǎng)的郵件,原來(lái)是因?yàn)镺ceanBase的測(cè)試方案從未有人做過(guò),而且規(guī)模特別龐大,審計(jì)員自己也沒(méi)把握,專程去了一趟TPC組織總部,把方案提交給TPC-C技術(shù)委員會(huì)開(kāi)會(huì)討論。

討論的結(jié)果反饋到了陽(yáng)振坤手中,他第一時(shí)間把消息發(fā)到了整個(gè)項(xiàng)目的每一個(gè)相關(guān)群里。“通過(guò)了!”測(cè)試方案最終獲得了TPC-C委員會(huì)的認(rèn)可。“心頭的一塊大石頭總算落了地。”蔣志勇松了口氣。各個(gè)群里一片歡騰,但這還只是路程中的第一塊里程碑。

“大家像戰(zhàn)友一樣,把后背交給對(duì)方”

“聚到一個(gè)項(xiàng)目里,大家從肉體到心靈,都靠得更近了。”

TPC-C項(xiàng)目杭州攻堅(jiān)團(tuán)隊(duì)

螞蟻金服技術(shù)專家曹暉是早期就加入TPC-C測(cè)試項(xiàng)目的成員之一,這一年多來(lái),他最常感到的就是“時(shí)間不夠用”。物理機(jī)換成虛擬機(jī),單機(jī)50%的性能差距很快顯現(xiàn)出來(lái),如何在短時(shí)間內(nèi)找到優(yōu)化點(diǎn)提升性能,成為團(tuán)隊(duì)攻堅(jiān)的重點(diǎn)任務(wù)。

杭州閉關(guān)室的墻上畫(huà)著一張性能表,每周更新,這條性能曲線也成為團(tuán)隊(duì)成員的“心情曲線”:“看著它像階梯一樣一步一步地走高,大家就非常高興;要是連續(xù)一段時(shí)間爬不上去,就要開(kāi)始掉頭發(fā)了。”曹暉笑著說(shuō)。

掉頭發(fā)的不僅僅是OceanBase的攻堅(jiān)團(tuán)隊(duì)。師文匯和DBA團(tuán)隊(duì)也每天都在“發(fā)愁”穩(wěn)定性和研發(fā)效能。螞蟻?zhàn)詈诵牡臉I(yè)務(wù)全部都運(yùn)行在OceanBase上,穩(wěn)定性絲毫不容有失,但大量人力和資源投入到TPC-C項(xiàng)目后,支持和維護(hù)日常業(yè)務(wù)的重?fù)?dān)都落到DBA團(tuán)隊(duì)和業(yè)務(wù)團(tuán)隊(duì)肩上,工作量激增。

“最緊張的是研發(fā)環(huán)境,如果出問(wèn)題,很多業(yè)務(wù)開(kāi)發(fā)都會(huì)受影響。”整整一個(gè)半月,DBA、交付、系統(tǒng)等團(tuán)隊(duì)都在攜手應(yīng)對(duì)這個(gè)問(wèn)題,終于,風(fēng)險(xiǎn)排除了。

TPC-C測(cè)試的結(jié)果公布后,陽(yáng)振坤在群里向所有兄弟團(tuán)隊(duì)表示感謝:“感謝大家對(duì)OceanBase的理解和寬容。”

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

“從來(lái)沒(méi)見(jiàn)過(guò)這么平穩(wěn)的曲線”

7月底,性能攻堅(jiān)告一段落,真正用于測(cè)試的大規(guī)模集群由阿里云準(zhǔn)備到位,交到了項(xiàng)目團(tuán)隊(duì)手中。曹暉被任命為“操作員”,掌控兩百多臺(tái)ECS云服務(wù)器。

意想不到的事又發(fā)生了。之前在小規(guī)模集群上解決掉的問(wèn)題,一上到大規(guī)模集群,又一一暴露出來(lái)。“壓力不均勻,抖動(dòng)很厲害,還出現(xiàn)了不少完全沒(méi)預(yù)料到的問(wèn)題。”蔣志勇說(shuō),“而且這還只是一些基礎(chǔ)問(wèn)題,把它們解決掉之后,還得把曲線跑得很平穩(wěn)才行。”

按照TPC-C的要求,在測(cè)試取值的2小時(shí)之內(nèi),系統(tǒng)抖動(dòng)不能超過(guò)2%。

而此時(shí)距離審計(jì)員前來(lái)杭州現(xiàn)場(chǎng)審計(jì),時(shí)間僅剩兩周。

從拿到正式測(cè)試的大規(guī)模集群開(kāi)始,大家就開(kāi)始連軸轉(zhuǎn)。曹暉天天在群里“釘”人,他盯著200多臺(tái)云服務(wù)器的運(yùn)行,只要發(fā)現(xiàn)問(wèn)題,馬上“釘”到對(duì)應(yīng)的同學(xué),被“釘”的同學(xué)無(wú)論在杭州還是北京,第一時(shí)間抄起電腦就沖到閉關(guān)室。

阿里云團(tuán)隊(duì)也傾力配合,IaaS層的配置和性能的優(yōu)化,問(wèn)題一個(gè)一個(gè)地在他們的支持下被攻克。

“想法很簡(jiǎn)單,就是往前沖。沒(méi)有退路,很多崗位連backup都沒(méi)有。”

沒(méi)有兩三年時(shí)間,只用了一年,OceanBase就迎來(lái)了TPC-C的最終大考。

8月6日,TPC-C審計(jì)員抵達(dá)杭州螞蟻金服總部。

“一邊很有信心,一邊又很緊張。”楊傳輝這樣形容當(dāng)時(shí)的心情。信心來(lái)自于九年以來(lái)的積淀,他們自信已經(jīng)具備了沖擊Oracle紀(jì)錄的實(shí)力;緊張來(lái)自于時(shí)間緊迫,最后針對(duì)大規(guī)模集群的調(diào)試只有兩周,會(huì)不會(huì)有不可預(yù)知的問(wèn)題發(fā)生?

測(cè)試工具啟動(dòng),OceanBase開(kāi)始運(yùn)行,預(yù)熱的時(shí)間中,審計(jì)員出去喝了杯咖啡。等他再回來(lái)時(shí),性能曲線已經(jīng)展示在了屏幕上——極其平穩(wěn),沒(méi)有絲毫抖動(dòng)。

經(jīng)驗(yàn)豐富的審計(jì)員大為驚嘆,因?yàn)閺膩?lái)沒(méi)有見(jiàn)過(guò)這么平穩(wěn)的曲線:“Very impressive!”

TPC-C的性能測(cè)試要求取值時(shí)段是2小時(shí),OceanBase是8小時(shí);TPC-C要求的抖動(dòng)幅度是不超過(guò)2%,OceanBase是低于0.5%。

現(xiàn)場(chǎng)審計(jì)結(jié)果獲得審計(jì)員認(rèn)可,接下來(lái)又經(jīng)過(guò)了一個(gè)多月的調(diào)優(yōu),9月底,OceanBase跑出了Final run結(jié)果。凌晨4點(diǎn),曹暉和鄒銀超把最終報(bào)告發(fā)給審計(jì)員。

10月2日一早,審計(jì)通過(guò)的結(jié)果出現(xiàn)在了TPC-C官網(wǎng)上——tpmC 6088萬(wàn),是Oracle紀(jì)錄的兩倍多,新的紀(jì)錄誕生了。

“那一刻真沒(méi)有感覺(jué)到特別興奮,反而覺(jué)得,這就是理所當(dāng)然的。”蔣志勇說(shuō)。鄒銀超也有同感:“覺(jué)得就應(yīng)該是這么優(yōu)秀的。”

“技術(shù)男不會(huì)特別情緒化。而且,我們?cè)?014年就已經(jīng)興奮過(guò)了。”楊傳輝說(shuō)。這位從頭看著OceanBase誕生和成長(zhǎng)的工程師經(jīng)歷過(guò)更多風(fēng)浪,最情緒化的反應(yīng)留在了當(dāng)年OceanBase第一次承接核心支付業(yè)務(wù)成功的時(shí)刻,“寫(xiě)代碼這件事,只要堅(jiān)持得足夠長(zhǎng),肯定能做出來(lái),但是就是需要堅(jiān)持,這種堅(jiān)持可能以十年二十年為單位。到了真正做出來(lái)的時(shí)刻,就會(huì)覺(jué)得是理所當(dāng)然的了。”

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

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

這個(gè)來(lái)之不易的世界第一,不僅足以讓每一個(gè)從事數(shù)據(jù)庫(kù)行業(yè)的工程師感到驕傲,也屬于為之努力過(guò)的每一位技術(shù)人。

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

以這個(gè)世界第一為契機(jī),平時(shí)不太接觸技術(shù)領(lǐng)域的人,也開(kāi)始了解中國(guó)自研的數(shù)據(jù)庫(kù)。“我的家人終于知道我是做什么的了。”曹暉感慨說(shuō),“更讓我高興的是,他們已經(jīng)開(kāi)始給別人講什么是數(shù)據(jù)庫(kù)了。”

楊傳輝把OceanBase登頂成功的報(bào)道轉(zhuǎn)到了朋友圈,他很快接到了母親的電話:“你朋友圈里發(fā)的那個(gè)‘世界第一’是什么?”七歲的女兒也興致盎然地來(lái)問(wèn)他,他對(duì)孩子解釋說(shuō),這是一個(gè)跑得很快很快的東西。

但每一位工程師都清楚地知道,“跑得很快”只是一個(gè)優(yōu)秀數(shù)據(jù)庫(kù)的必要條件,而非充分條件。

“數(shù)據(jù)庫(kù)像個(gè)跑車。極限速度取決于發(fā)動(dòng)機(jī),但跑車不僅僅只是一個(gè)發(fā)動(dòng)機(jī)。OceanBase在TPC-C測(cè)試的成績(jī),證明我們?cè)?lsquo;發(fā)動(dòng)機(jī)’性能方面達(dá)到了全球領(lǐng)先水平。但是數(shù)據(jù)庫(kù)的綜合能力方面,我們還有很大的進(jìn)步空間。”

下一步,OceanBase還要開(kāi)發(fā)更豐富的功能,提升復(fù)雜查詢的能力,在同一套引擎里既支持OLTP又支持OLAP。此外還要基于上下游產(chǎn)業(yè)來(lái)營(yíng)造一整套生態(tài)系統(tǒng)。這些就像是跑車的外觀、車內(nèi)設(shè)施、配套服務(wù)等等,只有全都做好,才能打造出一款頂級(jí)跑車。

此外,螞蟻金服還決定將自己開(kāi)發(fā)用于TPC-C測(cè)試的工具開(kāi)源。這意味著TPC-C將變成一種“普惠”測(cè)試。“任何一家公司只要在阿里云上租用資源,用這個(gè)開(kāi)源工具跑測(cè)試,然后請(qǐng)審計(jì)人員來(lái)審計(jì)就可以了。”楊傳輝說(shuō),“關(guān)鍵只在于,你的產(chǎn)品夠不夠好。”

2018雙十一中的OceanBase團(tuán)隊(duì)

OceanBase用了九年將自己的產(chǎn)品打磨至此,但創(chuàng)造一個(gè)新紀(jì)錄并不是它最終的目的。更重要的是,它為中國(guó)自研的數(shù)據(jù)庫(kù)鋪平了一條道路,任何人只要有信心和決心,都可以去挑戰(zhàn)這個(gè)行業(yè)的王者。

舉報(bào) 0 收藏 0 打賞 0評(píng)論 0
 
 
更多>同類資訊
全站最新
熱門(mén)內(nèi)容
網(wǎng)站首頁(yè)  |  關(guān)于我們  |  聯(lián)系方式  |  版權(quán)聲明  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報(bào)  |  開(kāi)放轉(zhuǎn)載  |  滾動(dòng)資訊  |  English Version