聊聊TPC那些事兒

2022-10-07 14:21:11 字數 3494 閱讀 7822

最近幾天oceanbase tpc-h勇奪世界第一的pr宣傳被中文自**先後報道,興奮之餘,筆者也想到,根據這些年對tpc機構以其審計師們的接觸,對tpc benchmark及其審計和發布流程有了一些了解,也聽到一些坊間的逸聞趣事,所以在恭喜oceanbase榮耀奪冠的時候,今天咱們也換個角度隨便聊聊關於tpc這個基準測試的事情。

1.誰在做tpc-h測試?

就先從tpc-h聊起吧,我們可以看到各個主流傳統資料庫廠商,在近些年早已經不再發表tpc-h的審計報告了,從而近年tpc-h越來越成為硬體裝置廠商展示自己伺服器處理能力的宣傳指標之一了。所以我們今天在tpc的官方網頁 [程式設計客棧1] 就會看到很「有趣」的一幕,明明是資料庫效能的基準測試,但結果列表(所謂的「榜單」)一眼望去幾乎都是硬體廠商:系統 (system) 一欄幾乎都是伺服器型號,測試贊助商 (company/sponsor) 幾乎都是裝置廠商,除了oceanbase和alibaba cloud analyticdb是例外。而列表上不同的裝置商程式設計客棧往往會選用相同的資料庫產品做基準測試,例如在tpc-h中近些年測試使用最多的就是微軟的sql server enterprise edition。看到這裡,我們大概會對tpc-h在業界中的作用解讀開始有了一些不一樣的想法了。

那為什麼會這樣呢?首先我們來看看tpc-h這個benchmark。tpc-h 這個benchmark包含了非常嚴苛的acid測試以及查詢效能測試,但嚴格來講並不是htap的tp和ap並存高併發的場景,而是在驗證acid基礎上的一些相對簡單(對比tpc-ds)的olap查詢的效能測試。其中ap的併發查詢根據測試資料量 (scale factor) 不同,一般只有2- 11 個併發(在tpc-h中每個併發被稱為乙個stream),在每個stream內 22 個查詢順序執行。而整個測試中tp只有乙個併發 (stream),且這個tp的stream只包含對order和lineitem兩張表的千分之一左右資料的寫入和刪除,一般情況下只佔每個ap stream執行耗時的很短時間,例如就以oceanbase這次公開發表的審計結果看,performance run1 的ap stream1 耗時為 1382 秒,而tp的耗時僅不到 7 秒就結束了,對ap workload中的大部分查詢幾乎影響很小。並且由於tpc-h的資料模型過於簡單,資料分布單一,對於傳統資料庫系統的挑戰並不是很大。再加上各個資料庫廠商及學術界對於tpc-h這個benchmark已經研究的非常透了,哪個查詢該做什麼優化,甚至多年前就有專門的**來討論 [2],所以總體來看,tpc-h對於傳統資料庫系統來說沒有什麼挑戰,對其宣傳作用也有限。而對以oceanbase為代表的資料庫「新勢力」來說,tpc-h難度適中,又比較全面地評測包括acid在內的資料庫系統能力,發表測試結果可以為其帶來一定的可信度(我們後面再說為什麼是「一定的」而不是「絕對的」),可以來作為商業推廣宣傳之一。

2.tpc-h的參考價值有多大?

這裡再說說基準測試結果的可信度。首先tpc有嚴格的第三方審計制度,是常年與tpc合作的審計組織,這個組織裡的審計師 (auditor) 都是資料www.cppcns.com庫領域有幾十年經驗的老專家,有些更是直接參與到benchmark的制定和修改中。整個審計流程非常嚴格,據說甚至連審計需要提供的日誌輸出的格式都有嚴格要求。按理說在這樣嚴格的審計流程下,審計結果一定非常可信。yes and no!

審計流程的嚴格沒有問題,但這裡tpc對包括tpc-h, tpc-ds, tpc-c在內的tpc絕大數benchmark結果都要求是公開可測的,是公開發布的產品版本。此外tpc對哪些特殊優化是允許還是不允許都有要求,傳統資料庫廠商也都曾針對這些benchmark做了很多有針對性的優化,而個別優化無法在系統中預設開啟,需要開關控制,而這樣的特殊優化是不能被tpc認可接受的,所以聽說也曾經出現過個別傳統資料庫廠商不得不撤回並重新發表某個tpc結果。回到大型分布式的資料庫系統,審計師現在一般不會直接登入來親自測試驗證產品,往往會審查測試流程和指令碼,並讓各個廠商自己提供證明,這些證明包括測試流程的審計日誌,測試結果,正式版本的證明,所用硬體系統的**證明,公開發售或提供服務(雲產品)的證明等。有些時候這些證明並不能完全被證實,所以每次結果發布後,會有三個月的公示期,來讓公眾(包括競爭對手)來驗證。但是對於超大集群的測試結果,一般很少有人會有資源去驗證的,而對於雲上產品,各個廠商也可以有方法來規避限制。所以總體來說,這個結果的可信度從技術角度一般沒有問題,但從tpc公開可測產品的要求來看,有時又無法完全保證。

再來看看tpc-ds。這項基準測試的第一家「上榜」廠商是國內星環,這也是tpc-ds基準推出後做的第一次官方審計測試,所以當時其實是星環幫助tpc一起解決了很多審計流程細節問題,這也是為什麼星環當年的審計花費了很長時間。之後的阿里雲的cloud analyticdb和cloud e-mapreduce兩個產品,得益於星環審計結果的公開測試指令碼和文件,在測試流程上可以少走一些彎路。這裡也八卦一下,聽說阿里雲這兩個產品有內部競爭所以在tpc-ds上時有pk,兩年內多次的審計測試讓tpc-ds的第三方審計公司這兩年的業務非常紅火,中國公司對於打榜的熱情應該著實讓tpc和其審計組織感動,據說每次審計的費用不菲,想來這也讓審計公司這兩年的業務更繁忙收益更好了,甚至聽說很多時候要提前很久來預約審計師的檔期時間。

3.雲時代我們還要刷榜tpc嗎?

目前為止,我們看到tpc-ds的測試成績列表上基本上都是被中國公司佔據,而國外特別是美國公司很少,這裡面有不同的原因。首先像aws redshift,其tpc-ds預設開箱效能就非常優秀了,而且其產品本身的市場知名度和地位,不需要再借助tpc-ds來宣傳,就像傳統資料庫廠商已經很少去搞審計測試tpc-h這件事一樣了。而像snowflake這樣的新興雲數倉廠商,之前一直對於被公開(特別是被競爭對手)測試非常敏感,其tpc-ds效能一直比較「神秘」,期待以後可以看到其標準審計結果資料。國內某廠商據說在 2019 年也曾經聯絡tpc來做審計,但由於上了美國實體限制名單,tpc只得退回其審計費用沒有再繼續。所以現在除了阿里雲的兩個產品外,後來星環和華三也分別做過審計測試,其結果在tpc官網上都可以看到,其中星環第二次提交的成績還是非常不錯的,超過了阿里雲兩款產品第一次「刷榜」的成績,但最近有一年的時間沒有再看到阿里雲這兩個產品發表最新結果了。在某中文自**對oce程式設計客棧anbase產品負責人的採訪文章中,文章作者也很期待oceanbase的tpc-ds審計結果發表,不知道是不是會再次掀起阿里雲和oceanbase以及其它國內資料庫「新勢力」的新一輪「刷榜」熱情,讓我們拭目以待。

最後再來看tpc-c,這個基準測試的難度和「含金量」筆者個人認為要遠高於tpc-h,這是真正衡量乙個tp系統的綜合能力。但是和tpc-h一樣,大多數傳統資料庫廠商因為各種原因已經幾乎不再審計和發表這項基準測試的結果了,更多的是一些裝置商或整合商。而傳統廠商不再「刷榜」的另乙個原因是其架構的擴充套件性達到相對瓶頸了,而這也是oceanbase可以利用其水平擴充套件的能力來「稱霸」榜首的乙個重要原因。

好了,筆者今天就簡單地隨想隨寫了一些關於tpc的事情,個人認為,tpc-h打榜有意義,但從技術上來看意義有限,而tpc-c和tpc-ds相對的技術挑戰會更高一些。另一方面,現在國內新興資料庫技術及產品越來越多,作為國家程式設計客棧重點發展的基礎系統軟體,對於中國的資料庫技術發展是非常好的一件事,但我們也要看到資料庫技術需要長期的積累沉澱和創新,要小心不要為了打榜出名而打榜,造成國內廠商的「打榜內捲」,而是真正能研發出對國家對民生有實際意義和技術突破的新技術新產品。

本文標題: 聊聊tpc那些事兒

本文位址:

聊聊Ambari的那些事兒

文章結構 本文將從ambari的起源 架構和設計思想聊聊ambari的那些事兒。說起ambari,不得不提下 hortonworks和它的競爭對手們。由於apache社群版的hadoop在面對企業級的應用時存在穩定性 可靠性 效能 易用性等方面的限制,許多公司都對其進行了 二次包裝 這些公司被稱為h...

聊聊Spring Cloud版本的那些事兒

繼續昨天說的計畫,解惑一下收到比較多的問題。有朋友問 為什麼在很多文章中,大家引用的spring版本名字都不一樣呢?比如 angel.sr6,brixton.sr5等等,它們都有什麼區別呢?今天我們就聊聊這個輕鬆一些的話題,說說spring cloud版本的那些事兒。之前提到過,spring clo...

聊聊Spring Cloud版本的那些事兒

繼續昨天說的計畫,解惑一下收到比較多的問題。有朋友問 為什麼在很多文章中,大家引用的spring版本名字都不一樣呢?比如 angel.sr6,brixton.sr5等等,它們都有什麼區別呢?今天我們就聊聊這個輕鬆一些的話題,說說spring cloud版本的那些事兒。之前提到過,spring clo...