時隔半年,螞蟻金服的自研數據庫 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 倍html
測試結果
OceanBase 是一個支持海量數據的高性能分佈式數據庫系統,由淘寶核心系統研發部、運維、DBA、廣告、應用研發等部門共同完成。2017年開始對外商用。linux
之因此在短期內作兩次測試,是由於 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 倍tcp
OceanBase 團隊透露,從測試收益來看,首先它知足了 OceanBase 自身對於性能測試的需求,結果具備公認的參考價值;其次,7億 tpmC 證實了分佈式數據庫能夠知足嚴格要求下的事務處理,意味着可以知足互聯網、金融、電信、政府等關鍵領域的核心繫統的事務處理需求。分佈式
TPC-C 測試
TPC 是國際事務處理性能委員會簡稱,該組織是一個負責制定性能測試基準的非盈利委員會,其制定的 TPC-C 測試可衡量數據庫在線事務處理能力。ide
性能和性價比是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)在保留原有在線交易功能的同時,也強調了數據庫原生計算分析的能力。它被認爲打破了事務處理和分析之間的「牆」,支持更多的信息和「實時業務」的決策。