OceanBase開源版與TiDB對比測試報(bào)告

北京it爺們兒老賈

兒童節(jié)OceanBase宣布開源,開源世界又多了一個(gè)小伙伴兒。之前也有聽聞OceanBase TPC-H 打榜的消息,很震撼,也很想親自動手跑一下結(jié)果驗(yàn)證一下。隨著OceanBase的開源,身邊的朋友也一直跟我打聽OB 與 TiDB 的差異。其實(shí)從架構(gòu)設(shè)計(jì)到功能再到性能,這兩款主流的分布式數(shù)據(jù)庫還是有不少的差異,由于精力有限,今天先從 TPC-H 性能的角度入手做個(gè)對比測試。

OceanBase 測試環(huán)境

版本:OceanBase V3.1.0

硬件配置:

OceanBase開源版與TiDB對比測試報(bào)告

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

開始時(shí)使用 100G 數(shù)據(jù),遇到疑似數(shù)據(jù)損壞 OB 集群無法啟動的情況:

Q4 長時(shí)間執(zhí)行導(dǎo)致一個(gè) OBServer 進(jìn)程退出,重啟集群無法恢復(fù)。 日志如下:

OceanBase開源版與TiDB對比測試報(bào)告

導(dǎo)入 100GB 數(shù)據(jù)之后做冷備份,啟動集群報(bào)內(nèi)存不足的錯(cuò)誤,清理 Linux 系統(tǒng) page cache 之后依然無法啟動。

翻閱 OB 官網(wǎng)發(fā)現(xiàn)有 10G 數(shù)據(jù)的 benchmark,最后決定采用 10G 數(shù)據(jù),正好與官網(wǎng)披露的性能做個(gè)對比。(OB 官網(wǎng) 10G 數(shù)據(jù) TPC-H 性能測試報(bào)告鏈接)

測試方法:調(diào)用 obclient 或者 MySQL 客戶端執(zhí)行 TPC-H 的 22條 查詢語句, 一共跑兩輪,第一輪為預(yù)熱,采用第二輪的數(shù)據(jù)作為測試結(jié)果。

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

OceanBase開源版與TiDB對比測試報(bào)告

OceanBase開源版與TiDB對比測試報(bào)告

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

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

TiDB 測試環(huán)境

版本: v5.0.1(支持 MPP)

硬件復(fù)用 OB 測試所用的四臺服務(wù)器,其中三臺部署為 TiFlash 節(jié)點(diǎn),另外一臺混合部署 PD、TiDB 和 TiKV。

數(shù)據(jù)量和測試方法與 OB 測試相同。

OceanBase 和 TiDB TPC-H 對比測試結(jié)果

OceanBase開源版與TiDB對比測試報(bào)告

OceanBase開源版與TiDB對比測試報(bào)告

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

總結(jié)和思考

沒有對比就沒有傷害,OB 開源版本的 OLAP 性能和TiDB 的 列存引擎對比起來還有不足

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

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

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

使用TPC-C/TPC-H 評估 HTAP并不恰當(dāng),難免偏頗

這次測試用到的 TPC-H 通常被用來衡量 OLAP 的性能,目前分布式數(shù)據(jù)庫領(lǐng)域,大家都在熱議的 HTAP(同時(shí)跑 OLTP 和 OLAP 的混合負(fù)載),顯然不能用單一的 TPC-C 或者 TPC-H 指標(biāo)來衡量。

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

后記

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

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )