如何看待騰訊資料庫打破世界紀錄?

特大號 發佈 2024-02-28T17:50:14.240878+00:00

TPC-C的榜單,又被刷新了,這一次,創造紀錄的是鵝廠。事兒呢就是這麼個事兒,鵝廠這次倒很低調,TPC官方都公布榜單好幾天了,也沒見鵝們大肆張揚。

TPC-C的榜單,又被刷新了,這一次,創造紀錄的是鵝廠。

剛剛傳來消息,騰訊雲資料庫TDSQL以8.14億的「戰鬥力」,成功登頂TPC-C測試榜首。

TPC.org官網新鮮出爐的的結果我截了屏(為方便展示刪掉了幾列不重要的),大家就看點關鍵的吧↓

打榜選手(參測品牌):騰訊雲

戰鬥力(tpmC):814854791次

戰力消耗(Price/tpmC):1.27元人民幣

戰鬥陣型(集群節點數):1650 節點

戰術代次(資料庫型號版本):TDSQL v10.3

事兒呢就是這麼個事兒,鵝廠這次倒很低調,TPC官方都公布榜單好幾天了,也沒見鵝們大肆張揚。(可能擱家偷著樂吧)

那麼,這個事到底值不值得鵝廠「飄一下」呢?我簡單說說TPC-C這個榜單的來龍去脈,各位看官自行判斷↓

TPC是國際權威機構「事務處理性能委員會」的縮寫,這個組織制訂了一系列的基準測試程序,TPC-A、B、C、D、E、H系列全家桶。

這其中,TPC-C名氣最大,是專門用來測試在線事務處理OLTP的基準程序,大家知道實際生產中,這種交易型場景都是資料庫在扛著,所以TPC-C被坊間譽為資料庫領域的「奧林匹克」。

早期的時候,這個榜單還不怎麼卷,主要是硬體廠家拿自己的設備來測測跑資料庫的性能咋樣,畢竟以前資料庫幾乎一家獨大,沒什麼可選餘地。

可現在不一樣了,百家爭鳴,據說目前市場上活躍的各類資料庫品牌有260多個,而客戶在選擇上也不是買台伺服器、裝個資料庫,更多是軟硬體一體化集成好的,甚至直接按需使用資料庫服務。

所以,這個「奧林匹克」就捲起來了,它逐漸成為驗證哪種資料庫架構更優秀的一把標尺,也是OLTP資料庫性能測試唯一的國際權威榜單。

如果能打榜奪冠,就證明我這套「資料庫陣容」(軟體、硬體、服務、集成優化)的技戰術水平,實實在在有點兒東西。

可既然是「奧林匹克」,奪冠的難度就非常大,因為TPC組織有點「不講武德」。

首先TPC並不提供基準程序的代碼,只提供標準規範,想要打榜的廠家根據規範構建最優的系統(測試平台和測試程序)。

實際測試中,TPC-C是模擬電商交易的業務邏輯↓

某批發公司有N個倉庫,每個倉庫供應10個地區,其中每個地區為3000名顧客服務。在每個倉庫中有10個終端,每一個終端用於一個地區。
在運行時,10×N個終端操作員向公司的資料庫發出5類請求。由於一個倉庫中不可能存儲公司所有的貨物,有一些請求必須發往其它倉庫,因此,資料庫在邏輯上是分布的。
N是一個可變參數,測試者可以隨意改變N,以獲得最佳測試效果。
TPC-C有5種事務,每種事務有規定的比例,分別訂單支付不低於43%,訂單查詢、訂單發貨和庫存查詢各不低於4%,其餘則為訂單創建(不高於45%),tpmC值是訂單創建事務每分鐘執行的數量。

這個測試需求的精妙之處,在於對生產環境有極高的還原度,保證了這「奧林匹克」不是假打,而是真刀真槍的實戰。

同時,事務符合ACID是基本要求,而且測性能的時候要求8小時穩定運行,不能有任何人工干預,每秒性能波動不超過2%。

說白了,要又穩又絲滑,不能飆完一個峰值就撤。這就和真玩交易業務一樣,要經得起考驗得動真格的。

規則都擺在這,具體怎麼幹?

理論上講,挑戰者可以用自認為優化最好的軟體,搭配性能最吊炸天的硬體,用足夠多的機器,來追求一個最好的測試指標。

但是,但是,實際要考量的,不光是戰鬥力(每分鐘事務處理數),還有性價比(處理每個事務花了多少銀子

因為最終任何產品還要落地到商業環境中去,如果單純為了追求性能,攢一個天價系統,同樣沒有什麼現實意義。

基於以上這些前置條件,我們再來評價下鵝廠的成績,到底有沒有含金量。

下面是鵝廠的詳細成績單和系統配置單↓

先說第一個核心指標tpmC數值是8.14億,比上屆「冠軍」的成績提升了1個多億。

講真,剛看到這個提升幅度,我覺得Just so so。心說鵝廠咋沒放個大核彈,來個指數級提升。

但細看一下就發現了蹊蹺,單純tpmC的提升不是重點,更難的提升是整個8小時的測試性能幾乎無抖動,波動範圍被控制在0.2%之內,這波操作有點難度。(遠遠低於官方要求的2%抖動範圍)

整個過程保障了超過8600億總事務、4萬億訂單零出錯,可以說足以應對市面上最苛刻的金融級交易挑戰。

鵝這次真的太穩了。

再說第二個核心指標,性價比。鵝廠創造了一個花錢新低:1塊兩毛7,差不多是上屆冠軍的三分之一。

這個數是怎麼來的呢?

可以看下面的配置單:1650台物理伺服器作為數據節點+3台物理伺服器作為管理節點+495台虛機作為客戶端,這是硬成本,再加上TDSQL資料庫軟體和支持服務費用,按照三年使用時間來計算。

也就是說這麼龐大的一個集群,你用三年,總造價是10.3億人民幣。

用總造價10.3億除以8.14億的「戰鬥力」,得到的數字就是1.27元。

10.3億是3年總體擁有成本,而8.14億是每分鐘完成的事務數量。所以你會發現這個算法其實不合理嘛。

1.27隻是個參考比值,用於比較各家參賽選手的性價比,而並非資金消耗的絕對值。

so,如果我們再除以三年的分鐘數(1576800分鐘),才會得到一個真正的每事務處理成本:0.0000008元。

換句話說,用鵝廠這樣的系統,每完成1000萬次事務處理,只需要花8塊錢。

我為什麼對這個金額如此糾結?是因為造價高達10個億的系統,一般用戶不會買,買了也Hold不住。

但是,如果這個系統在雲上,以資料庫雲服務的方式交付,那就是個小case,用戶可以按需使用,以極小的代價共享技術紅利。

從另一方面講,打榜還是很燒錢的,畢竟短時間要糾集幾千台伺服器,並不是一件小事。但這對鵝廠之類的公有雲服務商,卻有得天獨厚的條件。

從大雲資源池裡劃拉點機器出來,打完榜再釋放回去,那10個億不過是紙面成本,這也算是用到了雲計算的精髓。

而且鵝廠的即戰力確實很強,才第一次測,小試牛刀,就冒尖了。看看歷史榜單就知道,之前的玩家們,都測了好幾次。

最後,再閒聊幾句,這個成績到底有沒有實際意義?

不吹不黑,實際意義有三↓

1、分布式(雲)資料庫正在反超傳統資料庫,而且大局已定。

這個成績,表面上看是鵝廠贏了,其實是新IT打敗了舊IT,是雲資料庫、分布式資料庫的大趨勢打敗了傳統的集中式架構。

回顧一下歷史打榜紀錄,你就會發現,時代真的變了。

傳統資料庫代表們也並非沒有實力超越這個tpmC戰鬥力,但是必定要付出更高的綜合成本。

2、打榜的戰鬥力、性價比、可復用性,讓雲資料庫「普惠」成為可能。

我以前曾經有個比喻,如果造一個不可重用的單目標系統,只為追求某次比賽結果好看,那麼,即便這個系統威力如同原子彈,也只是bàng,放個大動靜讓大家開心一會兒。

但是,如果我在狂飆戰鬥力的同時,還能把性價比做到極致,同時這個系統還能化整為零,以任意粒度按需交付,那麼,我們就相當於有了量產的「孫悟空毫毛」。

這樣,各行各業、普羅大眾就都擁有了最先進的資料庫裝備,可以愉快地數位化變身,打怪升級了。

3、打榜厲害,實戰就一定厲害嗎?

前面我們說過了,TPC-C這個模型,對實際的聯機交易處理做了非常好的抽象,模擬交易中的極值場景,不把你測得「一佛出世,二佛涅槃」是不會罷休的。

所以,本身測試就很接近實戰,而鵝廠這一次也的確比較爭氣,除了8.14億「戰鬥力」、1.27元「性價比」、0.2%的低性能波動之外,還有新披露出來的一些變態數字:

比如單節點180萬QPS的性能、6.4億的前端並發用戶、高壓下的破壞性測試等等。

所有這些都是以實戰為基礎的,也是鵝廠15年深耕資料庫,尤其死磕金融交易場景的結果。(根據官方披露:騰訊雲分布式資料庫TDSQL已服務國內TOP10銀行中的7家,服務過半國內TOP 20銀行。

所以,吃瓜群眾也不光看打榜賺吆喝,打榜厲害、實戰更厲害的選手,大家更愛看。

當然,我也相信,8.14億的戰鬥力數值,不是終局,這個紀錄終有一天會被打破。

但是資料庫雲化、資料庫國產化的浪潮,終究是不可阻擋了。

關鍵字: