螞蟻金服OceanBase積累九年打榜TPC-C 還需理性看待
原創(chuàng)【51CTO.com原創(chuàng)稿件】今年國慶期間,除了看到閱兵式上國產(chǎn)自研的槍械和飛機(jī),還有一個(gè)振奮人心的消息:10月2日,國際事務(wù)處理性能委員會(huì)(TPC)官網(wǎng)披露,中國螞蟻金服自主研發(fā)的金融級(jí)分布式關(guān)系型數(shù)據(jù)庫OceanBase,在TPC-C基準(zhǔn)測(cè)試中,打破了由美國公司Oracle保持了9年之久的世界紀(jì)錄,成為首個(gè)登頂該榜單的中國數(shù)據(jù)庫產(chǎn)品,連中國工程院院士都給予了高度評(píng)價(jià)。

TPC-C基準(zhǔn)測(cè)試按性能排名前十位
在這則消息被刷爆朋友圈后,筆者內(nèi)心也是十分的激動(dòng),畢竟看到了我們國產(chǎn)自主研發(fā)的數(shù)據(jù)庫終于可以和世界頂級(jí)產(chǎn)品相媲美。不過,激動(dòng)過后還要理性看待。究竟螞蟻金服的OceanBase究竟有多厲害呢?讓我們先了解下TPC-C基準(zhǔn)測(cè)試后,再來評(píng)價(jià)。
什么是TPC?
TPC( Transaction Processing Performance Council ),事務(wù)處理性能委員會(huì),是由數(shù)10家會(huì)員公司創(chuàng)建的非盈利組織,總部設(shè)在美國。TPC的成員主要是計(jì)算機(jī)軟硬件廠家,它的功能是制定商務(wù)應(yīng)用基準(zhǔn)程序(Benchmark)的標(biāo)準(zhǔn)規(guī)范、性能和價(jià)格度量,并管理測(cè)試結(jié)果的發(fā)布。
TPC不給出基準(zhǔn)程序的代碼,而只是給出基準(zhǔn)程序的標(biāo)準(zhǔn)規(guī)范(Standard Specification)。任何廠家或其它測(cè)試者都可以根據(jù)規(guī)范,最優(yōu)地構(gòu)造出自己的系統(tǒng)(測(cè)試平臺(tái)和測(cè)試程序)。為保證測(cè)試結(jié)果的客觀性,被測(cè)試者(通常是廠家)必須提交給TPC一套完整的報(bào)告(Full Disclosure Report),包括被測(cè)系統(tǒng)的詳細(xì)配置、分類價(jià)格和包含五年維護(hù)費(fèi)用在內(nèi)的總價(jià)格。該報(bào)告必須由TPC授權(quán)的審核員核實(shí)(TPC本身并不做審計(jì)),現(xiàn)在全球只有幾個(gè)審核員,全部在美國。
什么是TPC-C基準(zhǔn)測(cè)試?
TPC-C是在線事務(wù)處理(OLTP)基準(zhǔn)測(cè)試,TPC-C測(cè)試規(guī)范經(jīng)過兩年的研制,于1992年7月發(fā)布。
TPC基準(zhǔn)測(cè)試的目標(biāo)是定義一組可以在任何事務(wù)處理系統(tǒng)上運(yùn)行的功能要求,而與硬件或操作系統(tǒng)無關(guān)。然后由測(cè)試發(fā)起人提交證明其已滿足所有要求的證據(jù)(以完整披露報(bào)告的形式)。這種方法允許任何使用“專有”或“開放”系統(tǒng)的供應(yīng)商實(shí)施TPC基準(zhǔn)。TPC基準(zhǔn)測(cè)試與其他基準(zhǔn)測(cè)試的不同之處還在于,TPC基準(zhǔn)測(cè)試是根據(jù)實(shí)際生產(chǎn)應(yīng)用程序和環(huán)境建模的,而不是獨(dú)立的計(jì)算機(jī)測(cè)試,后者可能無法評(píng)估關(guān)鍵性能因素,如用戶界面,通信,磁盤I/O,數(shù)據(jù)存儲(chǔ),備份和恢復(fù)。
基準(zhǔn)模型
作為OLTP系統(tǒng)基準(zhǔn),TPC-C模擬了一個(gè)完整的環(huán)境,在該環(huán)境中,大量的終端操作員針對(duì)數(shù)據(jù)庫執(zhí)行事務(wù)。基準(zhǔn)以訂單輸入環(huán)境的主要活動(dòng)(交易)為中心。這些交易包括輸入和交付訂單,記錄付款,檢查訂單狀態(tài)以及監(jiān)視倉庫中的庫存水平。但是,值得注意的是,TPC-C并不是要指定如何最好地實(shí)施訂單輸入系統(tǒng)。雖然基準(zhǔn)描述了批發(fā)供應(yīng)商的活動(dòng),但TPC-C不僅限于任何特定業(yè)務(wù)領(lǐng)域的活動(dòng),而是代表任何必須管理,銷售或分銷產(chǎn)品或服務(wù)的行業(yè)。
在TPC-C業(yè)務(wù)模型中,批發(fā)零件供應(yīng)商(以下簡稱為公司)在多個(gè)倉庫機(jī)器關(guān)聯(lián)的銷售區(qū)之外運(yùn)營。TPC基準(zhǔn)旨在隨著公司的擴(kuò)展和新倉庫的建立而擴(kuò)展。但是,在擴(kuò)展基準(zhǔn)時(shí)必須保持某些一致的要求。
公司擁有若干個(gè)分布在不同區(qū)域的商品倉庫,每個(gè)倉庫負(fù)責(zé)為10個(gè)銷售區(qū)供貨,每個(gè)銷售區(qū)為3000個(gè)客戶提供服務(wù),每個(gè)客戶平均一個(gè)訂單有10項(xiàng)產(chǎn)品,每個(gè)倉庫都要維護(hù)公司銷售的100000個(gè)商品的庫存記錄。但實(shí)際上,一個(gè)倉庫可能不會(huì)滿足所有訂單中的所有產(chǎn)品,因此,TPC-C基準(zhǔn)測(cè)試要求所有訂單的近10%必須由公司的另一個(gè)倉庫提供貨物。
該系統(tǒng)需要處理的交易為以下幾種:
New-Order:客戶輸入一筆新的訂貨交易;
Payment:更新客戶賬戶余額以反映其支付狀況;
Delivery:發(fā)貨(模擬批處理交易);
Order-Status:查詢客戶最近交易的狀態(tài);
Stock-Level:查詢倉庫庫存狀況,以便能夠及時(shí)補(bǔ)貨。
對(duì)于前四種類型的交易,要求響應(yīng)時(shí)間在5秒以內(nèi);對(duì)于庫存狀況查詢交易,要求響應(yīng)時(shí)間在20秒以內(nèi)。
測(cè)試指標(biāo)
TPC-C的測(cè)試結(jié)果主要有兩個(gè)指標(biāo):
·性能(tpmC)
TPC-C基準(zhǔn)測(cè)試的性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡稱;C指TPC中的C基準(zhǔn)程序。性能指標(biāo)描述了系統(tǒng)在執(zhí)行Payment、Order-status、Delivery、Stock-Level這四種交易的同時(shí),每分鐘可以處理多少個(gè)New-Order交易。所有交易的響應(yīng)時(shí)間必須滿足TPC-C測(cè)試規(guī)范的要求。

TPC-C測(cè)試規(guī)范的要求
值得注意的是,tpmC反應(yīng)的是C/S整體系統(tǒng)的性能,它與系統(tǒng)的服務(wù)器和客戶機(jī)的性能都有關(guān)系,也就是說,同樣的服務(wù)器配置不同的客戶端將會(huì)影響tpmC值。
·性價(jià)比(Price/tpmC)
即測(cè)試系統(tǒng)價(jià)格(指在美國的報(bào)價(jià))與流量指標(biāo)的比值。TPC-C 基準(zhǔn)測(cè)試中的價(jià)格是包括計(jì)算軟硬件價(jià)格以及三年服務(wù)價(jià)格,除了操作系統(tǒng)、數(shù)據(jù)庫、存儲(chǔ)、服務(wù)器等軟硬件以外,還包括針對(duì)TPC-C場(chǎng)景開發(fā)的應(yīng)用系統(tǒng),以及測(cè)試使用的電腦。
螞蟻金服OceanBase的過人之處
OceanBase項(xiàng)目于2016年立項(xiàng),第一個(gè)用戶是淘寶收藏夾。2013年7月,淘寶廣告系統(tǒng)使用的Oracle數(shù)據(jù)庫下線,也是整個(gè)淘寶最后一個(gè)Oracle數(shù)據(jù)庫。2014年,螞蟻金服開展交易去O項(xiàng)目,即核心交易從Oracle遷移到OceanBase,在交易去O后,螞蟻金服將所有核心業(yè)務(wù)遷移到OceanBase。2015年,OceanBase成功上線網(wǎng)商銀行,成為全球首個(gè)應(yīng)用在金融核心業(yè)務(wù)系統(tǒng)的分布式關(guān)系數(shù)據(jù)庫。2016年,OceanBase替換了支付寶核心的賬務(wù)系統(tǒng)中的Oracle數(shù)據(jù)庫。2017年,支付寶首次把賬務(wù)庫在內(nèi)的所有核心數(shù)據(jù)鏈路搬到OceanBase上,并在雙十一創(chuàng)造了4200萬次/秒數(shù)據(jù)庫處理峰值的全新紀(jì)錄。

TPC-C基準(zhǔn)測(cè)試-螞蟻金服和Oracle使用的軟硬件環(huán)境信息對(duì)比圖
對(duì)比螞蟻金服OceanBase與9年前Oracle的基準(zhǔn)測(cè)試結(jié)果可以看出,螞蟻金服花費(fèi)了當(dāng)年甲骨文測(cè)試總成本的近1.5倍,達(dá)到了后者當(dāng)年測(cè)試結(jié)果性能的兩倍。
對(duì)于此次螞蟻金服OceanBase的成功打榜,有質(zhì)疑榜單中的時(shí)效性。在TPC-C的測(cè)試結(jié)果排名頁面有句話,所有灰色背景的測(cè)試結(jié)果,由于軟硬件升級(jí)的原因而過期,測(cè)試結(jié)果有效期為3年。也就是說,此時(shí)在性能排名前50里,只有螞蟻金服是有效的,其他公司因?yàn)樘脹]有參與測(cè)試,以前的測(cè)試結(jié)果全部過期。
雖然,九年時(shí)間里,軟硬件技術(shù)快速發(fā)展,但是,國產(chǎn)自研數(shù)據(jù)庫能夠成功打榜數(shù)據(jù)庫OLTP測(cè)試領(lǐng)域的權(quán)威標(biāo)準(zhǔn)TPC-C,也證明了我國的技術(shù)實(shí)力也在逐漸趕超。
值得注意的是,螞蟻金服OceanBase通過TPC-C基準(zhǔn)測(cè)試,是基于阿里云的ECS云服務(wù)器,總共使用了 204 臺(tái) ECS i2 云服務(wù)器,成本取決于測(cè)試時(shí)間,因此螞蟻金服OceanBase這次TPC-C基準(zhǔn)測(cè)試的硬件成本占到總成本近18%,而Oracle的硬件成本則占總成本的76%。螞蟻金服OceanBase的價(jià)格則因?yàn)檐浖▋r(jià)則相對(duì)較高。
如何理性看待
TPC-C基準(zhǔn)測(cè)試雖然可以反映出系統(tǒng)性能的優(yōu)良,但是企業(yè)為了測(cè)試打榜而搭建的軟硬件系統(tǒng),肯定是經(jīng)過充分優(yōu)化過的。這里的系統(tǒng)包括主機(jī)、外設(shè)(如硬盤或RAID)、主機(jī)端操作系統(tǒng)、數(shù)據(jù)庫軟件、客戶端計(jì)算機(jī)及其操作系統(tǒng)、數(shù)據(jù)庫軟件和網(wǎng)絡(luò)連接等等。因此,性能數(shù)據(jù)說明的是系統(tǒng)的整體性能,而不能是單一產(chǎn)品的。用戶在選擇時(shí),還需要根據(jù)自己企業(yè)的業(yè)務(wù)特點(diǎn)、實(shí)際的系統(tǒng)、考量標(biāo)準(zhǔn)等多重因素來進(jìn)行選擇,不應(yīng)盲目的根據(jù)榜單中的tpmC值一概而論。
此外,大多數(shù)基準(zhǔn)程序都是在美國制訂的,而中國企業(yè)與美國的運(yùn)作方式不一樣,因此,中國企業(yè)的應(yīng)用是否符合TPC-C基準(zhǔn)測(cè)試中的批發(fā)商業(yè)務(wù)模型?事務(wù)請(qǐng)求是否與標(biāo)準(zhǔn)中的比例近似?所以,在某些情況下,tpmC值僅僅就是參考值。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】