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

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

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

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