聊聊TPC那些事兒
最近幾天OceanBase TPC-H勇奪世界第一的PR宣傳被中文自媒體先后報(bào)道,興奮之余,筆者也想到,根據(jù)這些年對(duì)TPC機(jī)構(gòu)以其審計(jì)師們的接觸,對(duì)TPC benchmark及其審計(jì)和發(fā)布流程有了一些了解,也聽(tīng)到一些坊間的逸聞趣事,所以在恭喜OceanBase榮耀奪冠的時(shí)候,今天咱們也換個(gè)角度隨便聊聊關(guān)于TPC這個(gè)基準(zhǔn)測(cè)試的事情。
1.誰(shuí)在做TPC-H測(cè)試?
就先從TPC-H聊起吧,我們可以看到各個(gè)主流傳統(tǒng)數(shù)據(jù)庫(kù)廠商,在近些年早已經(jīng)不再發(fā)表TPC-H的審計(jì)報(bào)告了,從而近年TPC-H越來(lái)越成為硬件設(shè)備廠商展示自己服務(wù)器處理能力的宣傳指標(biāo)之一了。所以我們今天在TPC的官方網(wǎng)頁(yè) [1] 就會(huì)看到很“有趣”的一幕,明明是數(shù)據(jù)庫(kù)性能的基準(zhǔn)測(cè)試,但結(jié)果列表(所謂的“榜單”)一眼望去幾乎都是硬件廠商:系統(tǒng) (System) 一欄幾乎都是服務(wù)器型號(hào),測(cè)試贊助商 (Company/Sponsor) 幾乎都是設(shè)備廠商,除了OceanBase和Alibaba Cloud AnalyticDB是例外。而列表上不同的設(shè)備商往往會(huì)選用相同的數(shù)據(jù)庫(kù)產(chǎn)品做基準(zhǔn)測(cè)試,例如在TPC-H中近些年測(cè)試使用最多的就是微軟的SQL Server Enterprise Edition。看到這里,我們大概會(huì)對(duì)TPC-H在業(yè)界中的作用解讀開(kāi)始有了一些不一樣的想法了。
那為什么會(huì)這樣呢?首先我們來(lái)看看TPC-H這個(gè)benchmark。TPC-H 這個(gè)benchmark包含了非常嚴(yán)苛的ACID測(cè)試以及查詢(xún)性能測(cè)試,但嚴(yán)格來(lái)講并不是HTAP的TP和AP并存高并發(fā)的場(chǎng)景,而是在驗(yàn)證ACID基礎(chǔ)上的一些相對(duì)簡(jiǎn)單(對(duì)比TPC-DS)的OLAP查詢(xún)的性能測(cè)試。其中AP的并發(fā)查詢(xún)根據(jù)測(cè)試數(shù)據(jù)量 (scale factor) 不同,一般只有2-11個(gè)并發(fā)(在TPC-H中每個(gè)并發(fā)被稱(chēng)為一個(gè)stream),在每個(gè)stream內(nèi)22個(gè)查詢(xún)順序執(zhí)行。而整個(gè)測(cè)試中TP只有一個(gè)并發(fā) (stream),且這個(gè)TP的stream只包含對(duì)Order和Lineitem兩張表的千分之一左右數(shù)據(jù)的寫(xiě)入和刪除,一般情況下只占每個(gè)AP stream執(zhí)行耗時(shí)的很短時(shí)間,例如就以O(shè)ceanBase這次公開(kāi)發(fā)表的審計(jì)結(jié)果看,Performance RUN1的AP stream1耗時(shí)為1382秒,而TP的耗時(shí)僅不到7秒就結(jié)束了,對(duì)AP workload中的大部分查詢(xún)幾乎影響很小。并且由于TPC-H的數(shù)據(jù)模型過(guò)于簡(jiǎn)單,數(shù)據(jù)分布單一,對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)的挑戰(zhàn)并不是很大。再加上各個(gè)數(shù)據(jù)庫(kù)廠商及學(xué)術(shù)界對(duì)于TPC-H這個(gè)benchmark已經(jīng)研究的非常透了,哪個(gè)查詢(xún)?cè)撟鍪裁磧?yōu)化,甚至多年前就有專(zhuān)門(mén)的論文來(lái)討論 [2],所以總體來(lái)看,TPC-H對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō)沒(méi)有什么挑戰(zhàn),對(duì)其宣傳作用也有限。而對(duì)以O(shè)ceanBase為代表的數(shù)據(jù)庫(kù)“新勢(shì)力”來(lái)說(shuō),TPC-H難度適中,又比較全面地評(píng)測(cè)包括ACID在內(nèi)的數(shù)據(jù)庫(kù)系統(tǒng)能力,發(fā)表測(cè)試結(jié)果可以為其帶來(lái)一定的可信度(我們后面再說(shuō)為什么是“一定的”而不是“絕對(duì)的”),可以來(lái)作為商業(yè)推廣宣傳之一。
2.TPC-H的參考價(jià)值有多大?
這里再說(shuō)說(shuō)基準(zhǔn)測(cè)試結(jié)果的可信度。首先TPC有嚴(yán)格的第三方審計(jì)制度,是常年與TPC合作的審計(jì)組織,這個(gè)組織里的審計(jì)師 (auditor) 都是數(shù)據(jù)庫(kù)領(lǐng)域有幾十年經(jīng)驗(yàn)的老專(zhuān)家,有些更是直接參與到benchmark的制定和修改中。整個(gè)審計(jì)流程非常嚴(yán)格,據(jù)說(shuō)甚至連審計(jì)需要提供的日志輸出的格式都有嚴(yán)格要求。按理說(shuō)在這樣嚴(yán)格的審計(jì)流程下,審計(jì)結(jié)果一定非常可信。Yes and No!
審計(jì)流程的嚴(yán)格沒(méi)有問(wèn)題,但這里TPC對(duì)包括TPC-H, TPC-DS, TPC-C在內(nèi)的TPC絕大數(shù)benchmark結(jié)果都要求是公開(kāi)可測(cè)的,是公開(kāi)發(fā)布的產(chǎn)品版本。此外TPC對(duì)哪些特殊優(yōu)化是允許還是不允許都有要求,傳統(tǒng)數(shù)據(jù)庫(kù)廠商也都曾針對(duì)這些benchmark做了很多有針對(duì)性的優(yōu)化,而個(gè)別優(yōu)化無(wú)法在系統(tǒng)中默認(rèn)打開(kāi),需要開(kāi)關(guān)控制,而這樣的特殊優(yōu)化是不能被TPC認(rèn)可接受的,所以聽(tīng)說(shuō)也曾經(jīng)出現(xiàn)過(guò)個(gè)別傳統(tǒng)數(shù)據(jù)庫(kù)廠商不得不撤回并重新發(fā)表某個(gè)TPC結(jié)果。回到大型分布式的數(shù)據(jù)庫(kù)系統(tǒng),審計(jì)師現(xiàn)在一般不會(huì)直接登錄來(lái)親自測(cè)試驗(yàn)證產(chǎn)品,往往會(huì)審查測(cè)試流程和腳本,并讓各個(gè)廠商自己提供證明,這些證明包括測(cè)試流程的審計(jì)日志,測(cè)試結(jié)果,正式版本的證明,所用硬件系統(tǒng)的價(jià)格證明,公開(kāi)發(fā)售或提供服務(wù)(云產(chǎn)品)的證明等。有些時(shí)候這些證明并不能完全被證實(shí),所以每次結(jié)果發(fā)布后,會(huì)有三個(gè)月的公示期,來(lái)讓公眾(包括競(jìng)爭(zhēng)對(duì)手)來(lái)驗(yàn)證。但是對(duì)于超大集群的測(cè)試結(jié)果,一般很少有人會(huì)有資源去驗(yàn)證的,而對(duì)于云上產(chǎn)品,各個(gè)廠商也可以有方法來(lái)規(guī)避限制。所以總體來(lái)說(shuō),這個(gè)結(jié)果的可信度從技術(shù)角度一般沒(méi)有問(wèn)題,但從TPC公開(kāi)可測(cè)產(chǎn)品的要求來(lái)看,有時(shí)又無(wú)法完全保證。
再來(lái)看看TPC-DS。這項(xiàng)基準(zhǔn)測(cè)試的第一家“上榜”廠商是國(guó)內(nèi)星環(huán),這也是TPC-DS基準(zhǔn)推出后做的第一次官方審計(jì)測(cè)試,所以當(dāng)時(shí)其實(shí)是星環(huán)幫助TPC一起解決了很多審計(jì)流程細(xì)節(jié)問(wèn)題,這也是為什么星環(huán)當(dāng)年的審計(jì)花費(fèi)了很長(zhǎng)時(shí)間。之后的阿里云的Cloud AnalyticDB和Cloud E-MapReduce兩個(gè)產(chǎn)品,得益于星環(huán)審計(jì)結(jié)果的公開(kāi)測(cè)試腳本和文檔,在測(cè)試流程上可以少走一些彎路。這里也八卦一下,聽(tīng)說(shuō)阿里云這兩個(gè)產(chǎn)品有內(nèi)部競(jìng)爭(zhēng)所以在TPC-DS上時(shí)有PK,兩年內(nèi)多次的審計(jì)測(cè)試讓TPC-DS的第三方審計(jì)公司這兩年的業(yè)務(wù)非常紅火,中國(guó)公司對(duì)于打榜的熱情應(yīng)該著實(shí)讓TPC和其審計(jì)組織感動(dòng),據(jù)說(shuō)每次審計(jì)的費(fèi)用不菲,想來(lái)這也讓審計(jì)公司這兩年的業(yè)務(wù)更繁忙收益更好了,甚至聽(tīng)說(shuō)很多時(shí)候要提前很久來(lái)預(yù)約審計(jì)師的檔期時(shí)間。
3.云時(shí)代我們還要刷榜TPC嗎?
目前為止,我們看到TPC-DS的測(cè)試成績(jī)列表上基本上都是被中國(guó)公司占據(jù),而國(guó)外特別是美國(guó)公司很少,這里面有不同的原因。首先像AWS Redshift,其TPC-DS默認(rèn)開(kāi)箱性能就非常優(yōu)秀了,而且其產(chǎn)品本身的市場(chǎng)知名度和地位,不需要再借助TPC-DS來(lái)宣傳,就像傳統(tǒng)數(shù)據(jù)庫(kù)廠商已經(jīng)很少去搞審計(jì)測(cè)試TPC-H這件事一樣了。而像Snowflake這樣的新興云數(shù)倉(cāng)廠商,之前一直對(duì)于被公開(kāi)(特別是被競(jìng)爭(zhēng)對(duì)手)測(cè)試非常敏感,其TPC-DS性能一直比較“神秘”,期待以后可以看到其標(biāo)準(zhǔn)審計(jì)結(jié)果數(shù)據(jù)。國(guó)內(nèi)某廠商據(jù)說(shuō)在2019年也曾經(jīng)聯(lián)系TPC來(lái)做審計(jì),但由于上了美國(guó)實(shí)體限制名單,TPC只得退回其審計(jì)費(fèi)用沒(méi)有再繼續(xù)。所以現(xiàn)在除了阿里云的兩個(gè)產(chǎn)品外,后來(lái)星環(huán)和華三也分別做過(guò)審計(jì)測(cè)試,其結(jié)果在TPC官網(wǎng)上都可以看到,其中星環(huán)第二次提交的成績(jī)還是非常不錯(cuò)的,超過(guò)了阿里云兩款產(chǎn)品第一次“刷榜”的成績(jī),但最近有一年的時(shí)間沒(méi)有再看到阿里云這兩個(gè)產(chǎn)品發(fā)表最新結(jié)果了。在某中文自媒體對(duì)OceanBase產(chǎn)品負(fù)責(zé)人的采訪文章中,文章作者也很期待OceanBase的TPC-DS審計(jì)結(jié)果發(fā)表,不知道是不是會(huì)再次掀起阿里云和OceanBase以及其它國(guó)內(nèi)數(shù)據(jù)庫(kù)“新勢(shì)力”的新一輪“刷榜”熱情,讓我們拭目以待。
最后再來(lái)看TPC-C,這個(gè)基準(zhǔn)測(cè)試的難度和“含金量”筆者個(gè)人認(rèn)為要遠(yuǎn)高于TPC-H,這是真正衡量一個(gè)TP系統(tǒng)的綜合能力。但是和TPC-H一樣,大多數(shù)傳統(tǒng)數(shù)據(jù)庫(kù)廠商因?yàn)楦鞣N原因已經(jīng)幾乎不再審計(jì)和發(fā)表這項(xiàng)基準(zhǔn)測(cè)試的結(jié)果了,更多的是一些設(shè)備商或集成商。而傳統(tǒng)廠商不再“刷榜”的另一個(gè)原因是其架構(gòu)的擴(kuò)展性達(dá)到相對(duì)瓶頸了,而這也是OceanBase可以利用其水平擴(kuò)展的能力來(lái)“稱(chēng)霸”榜首的一個(gè)重要原因。
好了,筆者今天就簡(jiǎn)單地隨想隨寫(xiě)了一些關(guān)于TPC的事情,個(gè)人認(rèn)為,TPC-H打榜有意義,但從技術(shù)上來(lái)看意義有限,而TPC-C和TPC-DS相對(duì)的技術(shù)挑戰(zhàn)會(huì)更高一些。另一方面,現(xiàn)在國(guó)內(nèi)新興數(shù)據(jù)庫(kù)技術(shù)及產(chǎn)品越來(lái)越多,作為國(guó)家重點(diǎn)發(fā)展的基礎(chǔ)系統(tǒng)軟件,對(duì)于中國(guó)的數(shù)據(jù)庫(kù)技術(shù)發(fā)展是非常好的一件事,但我們也要看到數(shù)據(jù)庫(kù)技術(shù)需要長(zhǎng)期的積累沉淀和創(chuàng)新,要小心不要為了打榜出名而打榜,造成國(guó)內(nèi)廠商的“打榜內(nèi)卷”,而是真正能研發(fā)出對(duì)國(guó)家對(duì)民生有實(shí)際意義和技術(shù)突破的新技術(shù)新產(chǎn)品。
References:
[1]TPC,"TPC-H official results," [Online]. Available: http://tpc.org/tpch/results/tpch_last_ten_results5.asp?version=3 .
[2]T. N. a. O. E. Peter Boncz, "TPC-H Analyzed: Hidden Messages and Lessons Learned from an Influential Benchmark," [Online]. Available: https://homepages.cwi.nl/~boncz/snb-challenge/chokepoints-tpctc.pdf.
本文轉(zhuǎn)載自微信公眾號(hào)「楊建榮的學(xué)習(xí)筆記」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系楊建榮的學(xué)習(xí)筆記公眾號(hào)。