數據庫廠商跑TPC-C就像處理器廠商要跑SPEC一樣,屬于是騾子是馬,拉出來溜溜的基準測試,也是業(yè)界公認的測試標準。不能說騰訊云數據庫TDSQL拿了TPC-C第一就是全面領先了,榜單是不斷更新的,只能說暫居第一。比第一更有意義的是應用,更多的商業(yè)用戶都能看到真實水平,這其實也是廠商TPC-C打榜的重要原因之一。
在2010年之前TPC-C的榜單是Oracle和DB2兩強爭霸,這兩年先是螞蟻金服的Ocenbase奪冠,現在是騰訊云的TDSQL刷新第一,其實,不管是Oracle還是DB2,是OcenBase還是TDSQL,拿下第一都是值得恭喜的,因為TPC-C真的不是隨隨便便誰都能拿下的。
要了解拿下TPC-C有什么意義,我們需要先知道TPC-C是什么?騰訊云的TDSQL又是什么?
不服跑個分,TPC-C是什么?
TPC全稱是Transaction Processing Performance Council,國際事務處理性能委員會,這是個權威的國際組織,早期的會員主要是美、日、歐的企業(yè),后來隨著中國企業(yè)的發(fā)展不斷有中國的企業(yè)加入。
TPC會制定商務應用基準程序(Benchmark)的標準規(guī)范并管理測試結果的發(fā)布,任何測試者都可以根據規(guī)范搭建自己的測試平臺和測試程序。測試完成后需要向TCP提交一套完整的報告,必須由TPC授權審核員核實,這樣才能被官方承認,廠商才能拿來宣傳。
這是有嚴格規(guī)定的,2009年的時候TPC就譴責了Oracle違反TPC的合理使用規(guī)定于DB2競爭,所以大家千萬不要認為廠商可以隨便拿來吹。
TPC推出了很多針對不同類型數據庫的基準測試標準,其中TPC-C就是針對在線事務處理OLTP的基準,該標準主要針對事務型數據庫。
騰訊云的TDSQL數據庫是什么?和Oracle有什么區(qū)別?
可能有人會問,什么是事務型數據庫,什么是分析型數據庫?這里要簡單說一下數據庫的分類,方便大家理解。
一般來說數據庫分為關系型和非關系型,關系型數據庫分為:
- 事務型數據庫(OLTP),主要用于處理電商購物、銀行交易等,都是由事務驅動的;
- 分析型數據庫(OLAP),善于處理復雜的分析,提供直觀易懂的查詢結果,主要用于數據倉庫,報表統(tǒng)計等;
- 混合型數據庫(HTAP),就是事務型數據庫與分析型數據庫的混合體;
騰訊云的TDSQL根據不同的場景也有不同類型的數據庫,如下圖所示:
TPC-C就是測試事務型數據庫(OLTP)的基準測試,TPC-C的測試結果代表的是TDSQL在高性能交易場景中的實力。
TDSQL與傳統(tǒng)數據庫的區(qū)別是什么?
如果我們處理的數據有幾十條、幾百條,數據也不多,使用Excel就可以處理了,簡單又方便;如果數據比較多,比如有100萬條數據,那顯然Excel就處理不過來了,這就需要數據庫;如果數據每天都增加100萬條,時間長了怎么處理?最簡單的方法就是增加CPU、內存、硬盤等,增強機器性能自然就處理的過來,這就是常說的scale-up(縱向擴展);除此之外還有另一種方法就是把數據分散到不同的計算機上,這些計算機通過網絡互相連接,共同組成一個完整的分布式數據庫,也就是TDSQL采用的這種方式,通常被稱作scale-out(橫向擴展)。
TPC-C測試很難,TDSQL做的很好
TPC-C測試拿第一難嗎?難,之前OceanBase登頂后,創(chuàng)始人陽振坤談過TPC-C的難處,這里也簡單說下:
- 事務符合ACID;
- TPC-C規(guī)定被測數據庫的性能與數據量成正比;
- 要求被測數據庫能以平穩(wěn)的性能長期運行;
- 被測數據庫的寫事務的結果必須在一定時間內數據落盤。
在測試運行過程中還要求系統(tǒng)具備60天、每天壓測8小時的存儲容量,每天壓測8小時,這必須考慮機器故障率的問題,TDSQL軟件需充分優(yōu)化做好容錯,且數據庫需具備非常好的線性擴展性。
顯然騰訊云TDSQL做到,而且做的更好,才取得了總tpmc(transaction per min)8.14億的優(yōu)秀成績。
- 性能穩(wěn)定性:8小時測試,性能波動范圍保持在0.2%以內。保障超過8600億總事務、4萬億訂單零出錯。
- 單機性能:單節(jié)點支持180萬QPS,不能有毛刺。
- 分布式集群:支持前端并發(fā)用戶連接6.4億,機器數達1650臺,分布式事務15%。
- 高壓下的破壞性測試:8億 tpmc 高壓下,各種故障模擬,保障數據零丟失,滿足數據一致性、隔離性要求;主備apply延遲需保持在10秒以內
比TPC-C更重要的是商用落地
打榜TPC-C是為了爭第一?個人覺得倒不止如此,因為TPC-C的權威性,所以數據庫廠商會拿來做商業(yè)宣傳,不符合規(guī)定的宣傳還會被通告,比如我們在前面提到的Oracle和DB2的例子。
對于客戶來說,8.14億tpmC很厲害,1.27元/tpmC同樣很厲害,這意味著普通機器也能跑出高性能。怎么做到的呢?我們查看下騰訊云此次TPC-C報告會發(fā)現此次使用的是騰訊云的虛擬機S5.24XLARGE288 以及騰訊云數據庫獨享集群HYI12A 。這也最終讓TDSQL僅用行業(yè)三分之一的成本,就抗住了更大規(guī)模的并發(fā)。
另外一個值得注意的TDSQL的性能相當平穩(wěn),穩(wěn)定運行8小時無抖動,這達到了金融級數據庫的要求。
事實上,騰訊云TDSQL也確實已經在金融行業(yè)使用開了,比如2021年8月,基于TDSQL打造的昆山農商銀行新一代核心系統(tǒng)成功投產上線。劃重點,銀行的核心系統(tǒng),是處理銀行最基本的存款、貸款業(yè)務為主的IT系統(tǒng),一分錢都不能差的那種。新核心系統(tǒng)整體處理能力可以達到6300TPS(事務處理數/秒),可支持每日億級交易量,在性能方面,高頻帳戶類交易平均響應時間在300毫秒之內,查詢類交易平均交易響應時間在100毫秒之內,日終批量時間縮短至8分鐘左右,季度結息17分鐘左右,96秒完成10萬筆社保代發(fā),在全國同類型銀行中處于領先地位。
不只是昆山農商銀行,目前TDSQL也服務近半國內TOP 20銀行,TOP10銀行中服務比例高達60%。客戶包括中國銀行、平安銀行、華夏銀行等。目前也已經完成了國產化全棧的適配,其中包括國產芯片、國產服務器、國產操作系統(tǒng)、國產中間件等基礎軟件的適配。同時與上游解決方案提供商開展了全行業(yè)解決方案的認證授牌,截止目前完成百款解決方案在騰訊云聯創(chuàng)實驗室的方案認證。
國產數據庫的崛起
說到這里不得不感慨,從畢業(yè)到現在在工作中有兩件與數據庫有關的事情讓我印象深刻。
一件事兒是十幾年前剛畢業(yè)的時候,我給一家國內的大型企業(yè)做項目開發(fā),當時有一股去IOE的風潮,這家大型企業(yè)計劃用PostgreSQL取代Oracle。現實是殘酷的,著手做的時候發(fā)現去不掉,最后不了了之了。
另一件事兒是以前做一個運營商某省公司的項目,在核心網上要存入很多CDR數據,平均每分鐘寫入數據二三百萬,如果推到全國數據量還要增加幾十倍。在這種情況下常用的MySQL就無法滿足要求了只能硬著頭皮研究Hadoop,有人會問為什么不用Oracle?因為實在太貴了。
現在想想,如果當時有TDSQL,可能那家大型企業(yè)的去IOE也就成功了,也不用硬著頭皮研究怎么搞數據庫可以把精力聚焦在業(yè)務上了。
從OceanBase到TDSQL,國產數據庫這幾年確實崛起了,不管從哪種意義上講,國產數據庫的崛起都是一件好事兒,也希望更多的有實力的廠商都去跑跑TPC-C打打榜,任何廠商奪得第一都是值得稱贊的,更希望國產數據庫廣泛的被應用在各行各業(yè)。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.