數(shù)據(jù)量:

開(kāi)始時(shí)使用 100G 數(shù)據(jù),遇到疑似數(shù)據(jù)損壞 OB 集群無(wú)法啟動(dòng)的情況:
Q4 長(zhǎng)時(shí)間執(zhí)行導(dǎo)致一個(gè) OBServer 進(jìn)程退出,重啟集群無(wú)法恢復(fù)。 日志如下:

翻閱 OB 官網(wǎng)發(fā)現(xiàn)有 10G 數(shù)據(jù)的 benchmark,最后決定采用 10G 數(shù)據(jù),正好與官網(wǎng)披露的性能做個(gè)對(duì)比。(OB 官網(wǎng) 10G 數(shù)據(jù) TPC-H 性能測(cè)試報(bào)告鏈接)
測(cè)試方法:調(diào)用 obclient 或者 MySQL 客戶端執(zhí)行 TPC-H 的 22條 查詢語(yǔ)句, 一共跑兩輪,第一輪為預(yù)熱,采用第二輪的數(shù)據(jù)作為測(cè)試結(jié)果。

OceanBase TPC-H 測(cè)試結(jié)果

Query

上圖從 22 個(gè) SQL 執(zhí)行所花費(fèi)的時(shí)間來(lái)看,這輪測(cè)試的結(jié)果明顯優(yōu)于 OB 官網(wǎng)發(fā)布的 benchmark,接近一半的指標(biāo)都有 50% 左右的提升。OB 官網(wǎng)的測(cè)試采用了阿里云的 ECS,這次測(cè)試的硬件配置更勝一籌,跑出這樣的結(jié)果也是有些小驚喜。

作為同樣業(yè)界聞名的分布式HTAP數(shù)據(jù)庫(kù)TiDB的性能表現(xiàn)如何呢?好奇心驅(qū)使下決定折騰一下TiDB 的 TiFlash 列存引擎用同樣的硬件配置和數(shù)據(jù)量來(lái)測(cè)一下 TiDB 的 TPC-H 指標(biāo)。

TiDB 測(cè)試環(huán)境
版本: v5.0.1(支持 MPP)
硬件復(fù)用 OB 測(cè)試所用的四臺(tái)服務(wù)器,其中三臺(tái)部署為 TiFlash 節(jié)點(diǎn),另外一臺(tái)混合部署 PD、TiDB 和 TiKV。
數(shù)據(jù)量和測(cè)試方法與 OB 測(cè)試相同。
OceanBase 和 TiDB TPC-H 對(duì)比測(cè)試結(jié)果


Query

從上圖的測(cè)試數(shù)據(jù)來(lái)看:TiDB TiFlash 啟動(dòng) MPP 的情況下,所有 22 個(gè) SQL 查詢的響應(yīng)時(shí)間都要好于OB ,所有 TPC-H 指標(biāo)的性能都在 OB 的兩倍以上,其中 query 7 更是達(dá)到了將近 10 倍。

總結(jié)和思考
沒(méi)有對(duì)比就沒(méi)有傷害,OB 開(kāi)源版本的 OLAP 性能和TiDB 的 列存引擎對(duì)比起來(lái)還有不足

從這次測(cè)試的結(jié)果看,目前開(kāi)源的 V3.1.0 版本 TPC-H 性能各項(xiàng)指標(biāo)均不如 TiDB,個(gè)人猜想原因可能有二:開(kāi)源版本與打榜 TPC-H 的版本可能存在一定的差異性;調(diào)優(yōu)方面也許專業(yè)的OB DBA會(huì)有一些方法我們不知道。企業(yè)版沒(méi)玩兒過(guò),咱不妄加評(píng)論。

測(cè)試過(guò)程的體驗(yàn)不太順暢

第一次下載和部署 OB,整個(gè)測(cè)試體驗(yàn)的過(guò)程不太流暢。一方面,頭一次部署工具的熟悉程度不夠,也從側(cè)面說(shuō)明部署工具的導(dǎo)航性有待加強(qiáng);另一方面,過(guò)程中遇到問(wèn)題,也無(wú)法找到相應(yīng)的官方文檔進(jìn)行調(diào)優(yōu)。

使用TPC-C/TPC-H 評(píng)估 HTAP并不恰當(dāng),難免偏頗
這次測(cè)試用到的 TPC-H 通常被用來(lái)衡量 OLAP 的性能,目前分布式數(shù)據(jù)庫(kù)領(lǐng)域,大家都在熱議的 HTAP(同時(shí)跑 OLTP 和 OLAP 的混合負(fù)載),顯然不能用單一的 TPC-C 或者 TPC-H 指標(biāo)來(lái)衡量。

CH-benCHmark 是目前學(xué)術(shù)界廣泛用來(lái)評(píng)估混合負(fù)載的基準(zhǔn)測(cè)試模型。(CHbenCHmark官網(wǎng) )計(jì)劃下次有時(shí)間,設(shè)計(jì)一個(gè)混合負(fù)載的場(chǎng)景,用 CH-benCHmark 來(lái)對(duì)比一下 OB 和 TiDB 在 HTAP 場(chǎng)景下真實(shí)的性能表現(xiàn)。

后記
筆者是個(gè)多年混跡DB圈兒的老家伙,6年職業(yè)DBA,從業(yè)20年大部分工作是與數(shù)據(jù)和數(shù)據(jù)庫(kù)打交道。老實(shí)說(shuō)認(rèn)識(shí) OceanBase 比 TiDB 要早,OceanBase 第一次開(kāi)源的時(shí)候我還在一家傳統(tǒng)軟件公司為金融行業(yè)客戶提供解決方案。本想試一下這個(gè)傳說(shuō)中的神器,由于項(xiàng)目原因一直沒(méi)時(shí)間,結(jié)果等有工夫的時(shí)候,OceanBase 從 github 上消失了。好像一個(gè)大家閨秀,驚鴻一瞥后又深藏閨中。所以這次一開(kāi)源便盡早入手測(cè)試,頗有一種再遇女神趕緊搭訕的感覺(jué),希望這次她能在俗世間呆的久一些。測(cè)試期間時(shí)不時(shí)出些小狀況,給人的感覺(jué)是這姑娘系出名門,標(biāo)志的很,不過(guò)性格好像不太好,時(shí)不時(shí)爆出點(diǎn)兒“error”,不過(guò)這也許是因?yàn)槌醮谓佑|了解不夠所致。至于本次測(cè)試報(bào)告,各位看官可以看做是專業(yè)票友的一次玩兒票,專業(yè)但不權(quán)威。數(shù)字是冷冰冰的,我更想談?wù)勎覍?duì)OB和Tidb的一些主觀感受。其實(shí) OceanBase 這次開(kāi)源讓我想起了操作系統(tǒng)軟件中的兩個(gè)明星產(chǎn)品 Solaris 和 Linux。產(chǎn)品的先發(fā)優(yōu)勢(shì)由技術(shù)先發(fā)優(yōu)勢(shì)和市場(chǎng)先發(fā)優(yōu)勢(shì)組成。在200X年 Solaris 無(wú)疑具備技術(shù)先發(fā)優(yōu)勢(shì)和商業(yè)市場(chǎng)先發(fā)優(yōu)勢(shì),但是在開(kāi)源市場(chǎng)Linux先發(fā)優(yōu)勢(shì)和社區(qū)活躍度已根深蒂固。再來(lái)聊聊 OceanBase 和 TiDB 的開(kāi)發(fā)技術(shù)棧。OB的技術(shù)棧是C++,TiDB的技術(shù)棧是 golang 和 rust,從我個(gè)人來(lái)講更喜歡后者。除去各種語(yǔ)言特性以及開(kāi)發(fā)效率和運(yùn)行效率的權(quán)衡以外,新生語(yǔ)言更讓人有探索的欲望。其實(shí)兩個(gè)同領(lǐng)域的技術(shù)更喜歡哪一個(gè)是個(gè)很主觀的問(wèn)題。Oracle是當(dāng)之無(wú)愧的數(shù)據(jù)庫(kù)王者,我想這一點(diǎn)沒(méi)人反對(duì),隨著開(kāi)源軟件的發(fā)展,陸續(xù)冒出來(lái)各種類型的數(shù)據(jù)庫(kù),不過(guò)這么多年過(guò)去了,你大爺還是你大爺。但是為啥國(guó)內(nèi)一直嚷嚷著去O?除去中美關(guān)系和經(jīng)濟(jì)因素不談,有時(shí)候僅僅就是因?yàn)閷徝榔诹?。開(kāi)源社區(qū)里的NewSql玩兒家多了是好事兒,但貴在堅(jiān)持

分享到

songjy

相關(guān)推薦