OceanBase 二次 TPC-C 測試性能提升 10 倍

導讀 時隔半年,螞蟻金服的自研數據庫 OceanBase 又去做了 TPC-C 測試。TPC 去年10月2日和今年5月20日公佈的測試結果顯示,OceanBase都是榜單第一。性能方面,去年OceanBase 的測試結果是6088萬 tpmC,今年則是7.07億 tpmC;TPC-C benchmark 價格也從¥6.25/tpmC 降低到¥3.98/tpmC。不過,一些數據庫公司,如Oracle並未參與這兩次測試。

OceanBase 二次 TPC-C 測試性能提升 10 倍OceanBase 二次 TPC-C 測試性能提升 10 倍

測試結果

OceanBase 是一個支持海量數據的高性能分佈式數據庫系統,由淘寶核心系統研發部、運維、DBA、廣告、應用研發等部門共同完成。2017年開始對外商用。

之所以在短時間內做兩次測試,是因爲 OceanBase 團隊認爲首次測試尚未充分發揮 OceanBase 分佈式架構的真正實力,同時也希望二次測試可以體現其性價比優勢。兩次 TPC-C 測試採用的都是OceanBase 2.2版本的 Oracle 兼容模式,目前螞蟻金服內部以及外部商業銀行均有 Oracle 業務已經遷移到 OceanBase 的 Oracle 模式。

性能方面。二次測試使用了1557臺84核 ECS i2d 服務器,一期僅有207臺服務器參與測試。這也證明 OceanBase 軟件的分佈式處理能力提升,軟件性能的提升最終使 tmpC 結果提升十倍以上。

其次,單 CPU 核性能也在提升。基於同樣的 CPU 核,第一次 TPC-C 測試使用了20764=13,248個 vCPU(虛擬機 CPU)核,本次則使用了155784=130,788個 vCPU 核,CPU 核數不到第一次的10倍,但整體性能達到了第一次的11倍以上,其中還有機羣規模提升所帶來的更大損耗。

得益於 OceanBase 軟件單核性能的優化以及軟件價格的優化,TPC-C benchmark 價格下降了¥2.27/tpmC。

OceanBase 二次 TPC-C 測試性能提升 10 倍OceanBase 二次 TPC-C 測試性能提升 10 倍

OceanBase 團隊透露,從測試收益來看,首先它滿足了 OceanBase 自身對於性能測試的需求,結果具有公認的參考價值;其次,7億 tpmC 證明了分佈式數據庫可以滿足嚴格要求下的事務處理,意味着能夠滿足互聯網、金融、電信、政府等關鍵領域的核心繫統的事務處理需求。

TPC-C 測試

TPC 是國際事務處理性能委員會簡稱,該組織是一個負責制定性能測試基準的非盈利委員會,其制定的 TPC-C 測試可衡量數據庫在線事務處理能力。

性能和性價比是TPC-C 測試的兩個衡量。性能由 tpmC(transactions per minute,tpm)衡量,C 指 TPC 中的 C 基準程序,它的定義是每分鐘內系統處理的新訂單個數。性價比衡量數據庫單位成本,以系統的總價格/tpmC 數值得出。

TPC-C 是開放的測試基準,這樣即便是參與測試公司的硬件架構和數據庫軟件架構有所不同,只要符合其規範,都可以參與測試。同時,TPC-C 測試非常嚴謹,極大程度杜絕作弊:

首先,TPC-C 要求被測數據庫必須滿足數據庫事務的 ACID,即原子性、一致性、隔離性和持久性,其中隔離性爲可串行化隔離級別,持久性要求能夠抵禦任何單點故障等。這是對 OLTP 數據庫的基本要求。

第二,TPC-C 規定被測數據庫的性能(tpmC)與數據量成正比,事實上真實業務場景也是如此。TPC-C 測試的基本數據單元是倉庫(warehouse),每個倉庫的數據量通常在70MB 左右(與具體實現相關),TPC-C 要求終端用戶在選擇事務類型時,需要按照規定的比例選擇五種事務,終端用戶每個事務都有一定的輸入時間(對每種事務分別固定)和一定範圍的隨機的思考時間(一個對數函數),根據這些要求,每個倉庫所能獲得的 tpmC 值的理論上限是12.86(假設數據庫的響應時間爲0)。

第三,TPC-C 要求被測數據庫能夠以平穩的性能長期地運行。測試時,去掉啓動預熱(ramp up)和結束降速(ramp down)時間後,被測數據庫至少要性能平穩地(steady state)運行8小時,其中性能採集時段(不少於2小時)內的性能累積波動不得超過2%。

第四,TPC-C 要求被測數據庫的寫事務的結果必須在一定時間內數據落盤(指數據庫數據,不是日誌,事實上 redo log 在事務提交前就落盤了),對於具備 checkpoint 功能的數據庫,checkpoint 的間隔不得超過30分鐘,checkpoint 數據持久化的時間不得超過 checkpoint 間隔。

第五,業務定向優化(profile-directed optimization,PDO)可以提升軟件的性能,TPC-C 也允許使用 PDO,但有一些限制,比如採用 PDO 優化的版本需要在客戶使用,數據庫廠家需要對 PDO 優化的版本提供技術支持等。爲了避免可能出現的異議,OceanBase 沒有使用 PDO。

TPC-C 的測試成本非常高。如 OceanBase 這次的測試,從 FDR 來看,根據標準要求公開的3年總持有成本中硬件成本就有約爲6億人民幣,包括軟硬件及服務在內的三年總成本爲28億人民幣。OceanBase 團隊表示,因爲租用了阿里雲公有云的 ECS 虛擬機,來替代物理服務器和存儲,可以便利擴容/縮容,也節省了成本,“實際測試中我們只需要在阿里雲上購買相應 ECS 資源很短的時間,遠遠低於之前榜單上其它廠商測試的花費”。

然而過高的成本等因素導致一些公司不再參與 TPC-C測試。Oracle 上次測試還是在2010年。當時,Oracle 公司的 SPARC T3-4 Supercluster以30 249 688 tmpC 創造了 TPC-C 性能測試的新紀錄。

目標是集成 HTAP

OceanBase 團隊正把更多精力投入到外部市場。未來,OceanBase 的產品目標之一是在一套引擎裏同時支持 OLAP 和 OLTP,即 HTAP,“在走訪客戶的過程中我們發現,絕大部分業務既需要 OLTP 又需要 OLAP”。

HTAP 是混合 OLTP 和 OLAP 業務同時處理的系統,Garnter 公司在2014年提出。根據最新定義:混合負載(HTAP Hybrid Transactional/Analytical Processing)在保留原有在線交易功能的同時,也強調了數據庫原生計算分析的能力。它被認爲打破了事務處理和分析之間的“牆”,支持更多的信息和“實時業務”的決策。更多Linux資訊請查看:https://www.linuxprobe.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章