溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

螞蟻金服自研數(shù)據(jù)庫(kù)OceanBase如何登頂TPC-C

發(fā)布時(shí)間:2020-07-08 21:36:25 來(lái)源:網(wǎng)絡(luò) 閱讀:329 作者:支付寶技術(shù) 欄目:數(shù)據(jù)庫(kù)
10 月 2 日,國(guó)際事務(wù)處理性能委員會(huì)(TPC)宣布:在最新發(fā)布的 TPC-C 排行榜中,螞蟻金服自研數(shù)據(jù)庫(kù) OceanBase 位列第一。InfoQ 記者第一時(shí)間采訪(fǎng)到螞蟻金服研究員、OceanBase 主架構(gòu)師楊傳輝(日照),請(qǐng)他解讀這份 TPC-C 榜單,同時(shí)介紹 OceanBase 積累九年多才正式參與 TPC-C 打榜的過(guò)程和意義。

請(qǐng)從專(zhuān)業(yè)性和權(quán)威性,參與標(biāo)準(zhǔn)和參與流程上,介紹一下 TPC-C 的測(cè)試結(jié)果,對(duì)于數(shù)據(jù)庫(kù)廠(chǎng)商來(lái)說(shuō)意味著什么?

螞蟻金服自研數(shù)據(jù)庫(kù)OceanBase如何登頂TPC-C

TPC 是由數(shù)十家會(huì)員公司創(chuàng)建的非盈利組織,成立于 1988 年,總部設(shè)在美國(guó),圖靈獎(jiǎng)得主 Jim Gray 是奠基人。TPC 的成員主要是業(yè)界主流的計(jì)算機(jī)軟硬件廠(chǎng)家,其職責(zé)是制定企業(yè)級(jí)應(yīng)用基準(zhǔn)測(cè)試考評(píng)的標(biāo)準(zhǔn)規(guī)范,并且衡量整體系統(tǒng)的性能和性?xún)r(jià)比,管理測(cè)試結(jié)果的認(rèn)證和發(fā)布。Oracle、IBM、微軟等公司的多個(gè)數(shù)據(jù)庫(kù)產(chǎn)品曾多次參與這個(gè)測(cè)評(píng)并且是主要領(lǐng)先成績(jī)的保持者。TPC-C 是 TPC 組織制定的關(guān)于 OLTP 數(shù)據(jù)庫(kù)事務(wù)處理能力的基準(zhǔn)測(cè)試,金融、電信、政府等關(guān)鍵領(lǐng)域的客戶(hù)一般參照 TPC-C 結(jié)果來(lái)衡量各個(gè)數(shù)據(jù)庫(kù)廠(chǎng)商的事務(wù)處理能力。

只有在 TPC 官方網(wǎng)站上得到認(rèn)證,得到國(guó)際機(jī)構(gòu)審計(jì)的測(cè)試結(jié)果才是 TPC 機(jī)構(gòu)認(rèn)可的測(cè)試結(jié)果。TPC-C 認(rèn)證要求非常嚴(yán)格,大到性能、功能、數(shù)據(jù)一致性和容災(zāi)能力,小到測(cè)試過(guò)程中使用過(guò)的鼠標(biāo)鍵盤(pán)價(jià)格,都需要嚴(yán)格披露,確保測(cè)試可復(fù)現(xiàn)且與真實(shí)業(yè)務(wù)場(chǎng)景保持一致。OceanBase TPC-C 僅僅認(rèn)證過(guò)程就花費(fèi)超過(guò)半年時(shí)間。

數(shù)據(jù)庫(kù)的核心能力包括性能、成本、功能、生態(tài)等等,而 TPC-C 是全球 OLTP 數(shù)據(jù)庫(kù)最權(quán)威的性能測(cè)試基準(zhǔn)。TPC-C 登頂是每個(gè) OLTP 數(shù)據(jù)庫(kù)廠(chǎng)商的夢(mèng)想,登頂意味著具備世界級(jí)的事務(wù)處理能力,能夠滿(mǎn)足無(wú)論是互聯(lián)網(wǎng)還是金融、電信、政府等關(guān)鍵領(lǐng)域的核心系統(tǒng)的事務(wù)處理需求。目前在 TPC-C 指標(biāo)上,螞蟻金服是唯一一家中國(guó)上榜企業(yè)。

OceanBase 此前參與過(guò)該基準(zhǔn)測(cè)試嗎?取得的成績(jī)是什么?

幾乎每個(gè) OLTP 數(shù)據(jù)庫(kù)都會(huì)在測(cè)試環(huán)境中跑 TPC-C 基準(zhǔn)測(cè)試,OceanBase 也不例外。雖然 OceanBase 在阿里巴巴“雙十一”等業(yè)務(wù)場(chǎng)景中積累了非常好的高并發(fā)事務(wù)處理能力,但 TPC-C“打榜”難度非常之大,OceanBase 積累了九年多才選擇正式參與 TPC-C 打榜。

請(qǐng)?jiān)敿?xì)介紹此次 OceanBase 參與測(cè)試的全過(guò)程,包括:如何參與?過(guò)程中需要配合提交什么?

每家數(shù)據(jù)庫(kù)廠(chǎng)商都可以參與 TPC-C,只需要郵件聯(lián)系 TPC 官方組織報(bào)名參加即可,關(guān)鍵在于數(shù)據(jù)庫(kù)廠(chǎng)商有沒(méi)有能力通過(guò)測(cè)試并得到好的結(jié)果。

OceanBase TPC 審計(jì)分成三個(gè)階段:第一個(gè)階段稱(chēng)為準(zhǔn)備階段,根據(jù) TPC-C 規(guī)范的要求實(shí)現(xiàn)必須的功能并做好性能優(yōu)化,這個(gè)階段需要把測(cè)試規(guī)范理解清楚,并把每個(gè)疑問(wèn)都和審計(jì)員通過(guò)郵件溝通清楚。需要注意的是,TPC-C 審計(jì)非常嚴(yán)格,一定要細(xì)化到 TPC-C 規(guī)范的每個(gè)條目,任何一條不符合規(guī)范都會(huì)導(dǎo)致測(cè)試不通過(guò);第二個(gè)階段稱(chēng)為現(xiàn)場(chǎng)預(yù)審計(jì),美國(guó)的審計(jì)員來(lái)到螞蟻金服杭州總部,和 OceanBase 團(tuán)隊(duì)成員一起完成功能測(cè)試、ACID 測(cè)試、性能測(cè)試、宕機(jī)測(cè)試、架構(gòu)和代碼 Review、性能成本計(jì)算等全部過(guò)程。當(dāng)時(shí)在這個(gè)過(guò)程中發(fā)現(xiàn)了一些問(wèn)題,OceanBase 團(tuán)隊(duì)后續(xù)幾周進(jìn)行了全部的改正;第三個(gè)階段稱(chēng)為正式審計(jì),OceanBase 團(tuán)隊(duì)按照審計(jì)員給的檢查列表修改完成所有預(yù)審計(jì)階段發(fā)現(xiàn)的問(wèn)題,每一項(xiàng)都得到審計(jì)員確認(rèn)后再運(yùn)行最終測(cè)試,最后完成 FDR(Full Disclosure Report)完整披露報(bào)告并向 TPC 技術(shù)委員會(huì)正式提交結(jié)果。

我們應(yīng)該如何看懂目前官網(wǎng)披露的 TOP10 結(jié)果中,各類(lèi)相關(guān)指標(biāo)背后的意義?比如性能、價(jià)格、CPU...

TPC-C TOP10 結(jié)果中,有些是數(shù)據(jù)庫(kù)公司測(cè)試的,有些是硬件公司測(cè)試的,不同測(cè)試的硬件架構(gòu)和數(shù)據(jù)庫(kù)軟件架構(gòu)都可能有所不同。TPC-C 是開(kāi)放的測(cè)試基準(zhǔn),不管采用什么架構(gòu)都可以來(lái)參加測(cè)試,只要符合 TPC-C 規(guī)范即可,最終的衡量標(biāo)準(zhǔn)主要是兩個(gè):一個(gè)是性能(tpmC),還有一個(gè)是性?xún)r(jià)比(price/tpmC)。性能表示數(shù)據(jù)庫(kù)能夠跑多快,性?xún)r(jià)比表示數(shù)據(jù)庫(kù)的成本能夠做到多低。

關(guān)于性能,TPC-C 測(cè)試模擬商品交易,包含五種事務(wù):NewOrder 創(chuàng)建新訂單(占比 n/a)、Payment 支付訂單(占比>=43%)、OrderStatus 查詢(xún)最近訂單(占比>=4%)、Delivery 批量配送訂單(占比>=4%)和 StockLevel 庫(kù)存狀態(tài)分析(占比>=4%)。TPC-C 雖然沒(méi)有規(guī)定 NewOrder 事務(wù)的占比,但通過(guò)其它四種事務(wù)的占比可以反推 NewOrder 占比<=45%。而 TPC-C 的性能指標(biāo)用 tpmC(transaction-per-minute-C)來(lái)衡量,表示每分鐘執(zhí)行的 NewOrder 事務(wù)數(shù),因此,實(shí)際測(cè)試時(shí),NewOrder 占比往往都是 45%,相應(yīng)地,Payment 占比 43%,另外三種事務(wù)占比 4%。另外,TPC-C 測(cè)試要求 10% NewOrder 分布式事務(wù),以及 15% Payment 分布式事務(wù)。

關(guān)于價(jià)格,TPC-C 測(cè)試綜合計(jì)算軟硬件價(jià)格以及三年服務(wù)價(jià)格,軟硬件價(jià)格除了數(shù)據(jù)庫(kù)和存儲(chǔ),還包括針對(duì) TPC-C 場(chǎng)景開(kāi)發(fā)的應(yīng)用系統(tǒng),甚至連測(cè)試使用的臺(tái)式機(jī)也需要計(jì)算在內(nèi)。軟件價(jià)格和硬件價(jià)格最好區(qū)分開(kāi)來(lái),硬件價(jià)格代表商業(yè)數(shù)據(jù)庫(kù)的真實(shí)成本,軟件價(jià)格代表商業(yè)數(shù)據(jù)庫(kù)的利潤(rùn)。例如,OceanBase 這次 TPC-C 測(cè)試的總體價(jià)格雖然不低,但是硬件價(jià)格占比很低(不到 18%),真實(shí)性?xún)r(jià)比遠(yuǎn)遠(yuǎn)高于第二名 Oracle,整體性?xún)r(jià)比和 Oracle 比較接近更像是一種定價(jià)策略。另外,TPC-C 測(cè)試要求磁盤(pán)至少能夠存儲(chǔ) 60 天的數(shù)據(jù)量。集中式數(shù)據(jù)庫(kù)往往存儲(chǔ)一份數(shù)據(jù),而 OceanBase 采用 Paxos 協(xié)議實(shí)現(xiàn) RPO = 0,在 TPC-C 測(cè)試以及主流生產(chǎn)系統(tǒng)中都存儲(chǔ)了 2 份數(shù)據(jù)和 3 份日志,相當(dāng)于 OceanBase 需要提供 120 天的存儲(chǔ)容量并計(jì)入價(jià)格。

關(guān)于 CPU,這里有兩個(gè)關(guān)鍵點(diǎn)

1、對(duì)于集中式架構(gòu),除了數(shù)據(jù)庫(kù)使用 CPU 之外,專(zhuān)用存儲(chǔ)設(shè)備也需要使用 CPU。例如,第二名 Oracle 3000 多萬(wàn) tpmC 的測(cè)試中,數(shù)據(jù)庫(kù)使用了 108 顆 T3 SPARC 處理器,共有 1728 個(gè)物理核心和 13824 個(gè)執(zhí)行線(xiàn)程,同時(shí)存儲(chǔ)設(shè)備使用的是 Intel 服務(wù)器作為機(jī)頭,總共使用了 97 臺(tái)服務(wù)器,194 顆 Intel X5670 CPU,2328 個(gè)物理核心。

2、TPC-C 基準(zhǔn)測(cè)試無(wú)法簡(jiǎn)單地通過(guò)增加 CPU 核來(lái)提升性能。這是因?yàn)?,TPC-C 考察分布式事務(wù),數(shù)據(jù)庫(kù)軟件如果做得不好,無(wú)論怎么增加 CPU 也無(wú)法提升 TPC-C 性能。Oracle 因?yàn)槠?RAC 技術(shù)可以把 OLTP 數(shù)據(jù)庫(kù)服務(wù)器擴(kuò)展到幾十個(gè)節(jié)點(diǎn),其它軟硬件廠(chǎng)商憑借單機(jī)無(wú)法超越,直到 OceanBase 實(shí)現(xiàn)了真正的 OLTP 分布式數(shù)據(jù)庫(kù)技術(shù)。

從結(jié)果來(lái)看,OceanBase 提交時(shí)間是 2019 年 10 月 2 日,其他幾家提交時(shí)間是 2011 年、2010 年... 為何大家提交時(shí)間如此不同?不同時(shí)間提交的結(jié)果,具有可比性嗎?

TPC-C 測(cè)試是需要有驅(qū)動(dòng)力的,Oracle 2010 年測(cè)試得到 3000 多萬(wàn)的結(jié)果之后就“獨(dú)孤求敗”了,其它廠(chǎng)商測(cè)不過(guò),Oracle 也缺乏刷新自己保持的記錄的動(dòng)機(jī)。Oracle 最新的測(cè)試結(jié)果是 2013 年 3 月份做的,在榜單的第四名,當(dāng)時(shí)也是為了推廣 Sun 的 SPARC 處理器。大家關(guān)注的往往都是榜單的前幾名,Oracle、DB2 和 SQL Server 這三家公司把 TPC-C 性能測(cè)得太高了,導(dǎo)致其他廠(chǎng)商基本沒(méi)有機(jī)會(huì)進(jìn)入 TPC-C 榜單前幾名,與其測(cè)出普通的結(jié)果,還不如干脆保持“神秘”,OceanBase 也是準(zhǔn)備了九年確保能夠上榜之后才正式測(cè)試。

OceanBase 和榜單前幾名的測(cè)試時(shí)間相差比較大,本質(zhì)的原因在于其它數(shù)據(jù)庫(kù)采用的是專(zhuān)用硬件(專(zhuān)用服務(wù)器 + 專(zhuān)用高端存儲(chǔ)),OceanBase 采用的是基于普通 PC 服務(wù)器的分布式架構(gòu)。采用分布式架構(gòu)之后,OceanBase 的硬件成本大幅優(yōu)于專(zhuān)用硬件,這幾年硬件性?xún)r(jià)比提升的主要受益者也是普通 PC 服務(wù)器。所以,這里更多是專(zhuān)用硬件和分布式架構(gòu)的區(qū)別,而不在于測(cè)試時(shí)間的差別。當(dāng)然,基礎(chǔ)軟件重大創(chuàng)新的時(shí)間周期是很長(zhǎng)的,一般需要十年以上的積累,銀行核心業(yè)務(wù)今天使用的大型機(jī)還是幾十年前的技術(shù)。

據(jù)介紹此次測(cè)試結(jié)果是在阿里云支持下實(shí)現(xiàn)的,這意味著什么?硬件產(chǎn)品與測(cè)試結(jié)果之間的關(guān)系是什么?

TPC-C 測(cè)試需要考察三年軟硬件總費(fèi)用,如果采用獨(dú)立部署的模式,需要購(gòu)買(mǎi)全部硬件,例如第二名 Oracle 測(cè)試的硬件總體成本大約 3000 多萬(wàn)美金,絕大多數(shù)商業(yè)公司都是玩不起的。而 OceanBase 采用阿里巴巴公有云提供的 ECS 云服務(wù)器,測(cè)試多長(zhǎng)時(shí)間就租用多長(zhǎng)時(shí)間,使得測(cè)試成本大幅降低。

TPC-C 測(cè)試要求在峰值性能穩(wěn)定運(yùn)行 8 個(gè)小時(shí),其中至少 2 小時(shí)性能抖動(dòng)不超過(guò) 2%,OceanBase 做到了 8 小時(shí)性能抖動(dòng)不超過(guò) 2%,無(wú)論對(duì)數(shù)據(jù)庫(kù)軟件還是硬件挑戰(zhàn)都非常大。OceanBase 在阿里云支持下完成此次 TPC-C 測(cè)試,總共使用了 204 臺(tái) ECS i2 云服務(wù)器。另外,TPC-C 模擬的是銀行的交易核心,對(duì)穩(wěn)定性和宕機(jī)恢復(fù)都有嚴(yán)格的要求,說(shuō)明 OceanBase 能夠在阿里云上提供金融級(jí)的可靠性。

有人說(shuō) OceanBase 取得的測(cè)試結(jié)果是被“雙十一”這樣的業(yè)務(wù)倒逼的,我們應(yīng)該如何理解業(yè)務(wù)倒逼技術(shù)?

OceanBase 從 2010 年開(kāi)始立項(xiàng)就定位要做世界級(jí)的分布式數(shù)據(jù)庫(kù),然而,好的技術(shù)一定要先有好的業(yè)務(wù)場(chǎng)景。對(duì)于數(shù)據(jù)庫(kù)這樣的基礎(chǔ)軟件,想要彎道超車(chē),更是需要重量級(jí)的業(yè)務(wù)場(chǎng)景。每年“雙十一”零點(diǎn)的峰值壓力對(duì)于高性能數(shù)據(jù)庫(kù)是絕佳的練兵場(chǎng),OceanBase 也是在阿里內(nèi)部經(jīng)過(guò)了多年的“雙十一”歷練之后才開(kāi)放給金融以及其它行業(yè)的客戶(hù)。

對(duì)于數(shù)據(jù)庫(kù)這樣的通用技術(shù)來(lái)說(shuō),既要業(yè)務(wù)需求倒逼但同時(shí)又要超出業(yè)務(wù)需求。數(shù)據(jù)庫(kù)的整體設(shè)計(jì)一定是面向通用場(chǎng)景,遵守?cái)?shù)據(jù)庫(kù)行業(yè)國(guó)際標(biāo)準(zhǔn),例如針對(duì)數(shù)據(jù)庫(kù)語(yǔ)法的 SQL 規(guī)范,以及針對(duì)數(shù)據(jù)庫(kù)性能的 TPC-C 測(cè)試規(guī)范;同時(shí),數(shù)據(jù)庫(kù)的功能集合很大,需要根據(jù)業(yè)務(wù)需求合理安排研發(fā)優(yōu)先級(jí),研發(fā)團(tuán)隊(duì)成員才能從解決實(shí)際業(yè)務(wù)問(wèn)題中找到成就感。

我們?nèi)绾慰创龂?guó)內(nèi)廠(chǎng)商積極參與 TPC 測(cè)試?

TPC 是數(shù)據(jù)庫(kù)行業(yè)針對(duì)性能測(cè)試的國(guó)際權(quán)威標(biāo)準(zhǔn),國(guó)內(nèi)廠(chǎng)商積極參與 TPC 測(cè)試,本身也是中國(guó)數(shù)據(jù)庫(kù)行業(yè)自信的一種體現(xiàn),表明中國(guó)數(shù)據(jù)庫(kù)可以逐步參與全球競(jìng)爭(zhēng)。中國(guó)的數(shù)據(jù)庫(kù)需要回歸研發(fā)本質(zhì),具備自主研發(fā)和自主創(chuàng)新能力。對(duì)于 TPC-C 測(cè)試,我也看到部分國(guó)內(nèi)廠(chǎng)商采用未經(jīng)官方認(rèn)證的標(biāo)準(zhǔn),我認(rèn)為這是不合適的。OceanBase 后續(xù)會(huì)將 TPC-C 測(cè)試工具開(kāi)源,使其它數(shù)據(jù)庫(kù)廠(chǎng)商也能夠簡(jiǎn)單地完成符合審計(jì)標(biāo)準(zhǔn)的 TPC-C 測(cè)試,進(jìn)一步促進(jìn)中國(guó)數(shù)據(jù)庫(kù)產(chǎn)業(yè)和國(guó)際接軌。

OceanBase 在兼容 Oracle 方面,目前的主要進(jìn)展是什么?接下來(lái)的發(fā)展計(jì)劃是什么?

本次 TPC-C 測(cè)試采用的是 OceanBase 2.2 版本,OceanBase 2.2 已經(jīng)初步具備 Oracle 兼容能力,OceanBase TPC-C 測(cè)試采用的就是完全兼容 Oracle 的存儲(chǔ)過(guò)程語(yǔ)法。阿里巴巴內(nèi)部有部分 Oracle 業(yè)務(wù)已經(jīng)平滑遷移到 OceanBase,阿里巴巴外部也有股份制銀行正在將 Oracle 業(yè)務(wù)平滑遷移到 OceanBase。接下來(lái),OceanBase 還會(huì)進(jìn)一步加強(qiáng) Oracle 兼容特性,重點(diǎn)加強(qiáng)分布式優(yōu)化器和執(zhí)行器的核心能力。

作者介紹

楊傳輝(日照),螞蟻金服研究員,OceanBase 主架構(gòu)師,負(fù)責(zé) OceanBase 研發(fā),職業(yè)生涯先后在百度和阿里從事云計(jì)算和分布式數(shù)據(jù)庫(kù)內(nèi)核研發(fā)工作,著有《大規(guī)模分布式存儲(chǔ)系統(tǒng):原理與實(shí)踐》。

OceanBase 大事記

2010 年:創(chuàng)始人陽(yáng)振坤加入阿里巴巴,OceanBase 正式立項(xiàng);

2011 年:OceanBase 0.1 版本發(fā)布,應(yīng)用于淘寶收藏夾;

2014 年:OceanBase 0.5 版本發(fā)布,替代 Oracle 在支付寶交易系統(tǒng)上線(xiàn),負(fù)擔(dān)“雙十一”10% 流量;

2015 年:網(wǎng)商銀行成立,OceanBase 成為全球首個(gè)應(yīng)用在金融核心業(yè)務(wù)系統(tǒng)的分布式關(guān)系數(shù)據(jù)庫(kù);

2016 年:OceanBase 1.0 版本在支付寶賬務(wù)系統(tǒng)上線(xiàn),支撐 12 萬(wàn)筆 / 秒支付峰值;

2017 年:支付寶首次把賬務(wù)庫(kù)在內(nèi)的所有核心數(shù)據(jù)鏈路搬到 OceanBase 上,創(chuàng)造 4200 萬(wàn)次 / 秒數(shù)據(jù)庫(kù)處理峰值紀(jì)錄。同年,OceanBase 1.x 版本在多家商業(yè)銀行上線(xiàn);

2018 年:OceanBase 2.0 版本正式發(fā)布,降低金融業(yè)務(wù)向分布式架構(gòu)轉(zhuǎn)型的技術(shù)風(fēng)險(xiǎn);

2019 年:OceanBase 獲得 TPC-C 基準(zhǔn)測(cè)試排名榜首。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI