性能提升 10 倍,OceanBase 二次 TPC-C 測試結果公布

2020-12-16 開源中國

時隔半年,螞蟻金服的自研資料庫 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 是一個支持海量數據的高性能分布式資料庫系統,由淘寶核心系統研發部、運維、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 團隊透露,從測試收益來看,首先它滿足了 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)在保留原有在線交易功能的同時,也強調了資料庫原生計算分析的能力。它被認為打破了事務處理和分析之間的「牆」,支持更多的信息和「實時業務」的決策。

相關焦點

  • 國產資料庫 OceanBase 二次刷榜 TPC-C,7億tpmC!
    (TPC),發布最新評測榜單,螞蟻金服自研的分布式關係資料庫OceanBase,以7.07億的tpmC的評測成績再次奪冠,並將自己之前創造的記錄提升了近11倍。 2019年10月,OceanBase打破甲骨文長達9年的「壟斷」,登頂TPC榜首時,業界有不少的評論稱,阿里的第一名成績不會保持太久的,甲骨文、IBM等老牌資料庫廠商很快就會刷新OceanBase創造的記錄。OceanBase這次直接用提升11倍的成績,對那些唱衰言論給出最好回應。
  • TPC-C解析系列02_OceanBase如何做TPC-C測試
    由於這是國產資料庫同時也是分布式資料庫第一次衝擊這個榜單,為了完成這次挑戰,OceanBase團隊前後準備時間超過一年,僅審計認證過程就耗時約半年,除了資料庫自身性能優化同時還有大量的穩定性、合規要求相關工作,6088w tpmC其實也只是整個測試結果中一小個展示項而已。
  • 解密:OceanBase如何在TPC-C測試中獲得創紀錄的7億tpmC?
    5月20日,國際事務處理性能委員TPC組織的官網顯示,螞蟻金服100%自主研發的分布式關係資料庫OceanBase,以7.07億(707,351,007)tpmC的在線事務處理性能,打破了OceanBase自己在2019年10月創造的6088萬(60,880,800)tpmC的TPC-C世界紀錄。
  • 獨家解讀:螞蟻金服自研資料庫 OceanBase 如何登頂 TPC-C
    AI 前線導讀:10 月 2 日,國際事務處理性能委員會(TPC)宣布:在最新發布的 TPC-C 排行榜中,螞蟻金服自研資料庫 OceanBase 位列第一。 InfoQ:我們應該如何看懂目前官網披露的 TOP10 結果中,各類相關指標背後的意義?比如性能、價格、CPU... TPC-C TOP10 結果中,有些是資料庫公司測試的,有些是硬體公司測試的,不同測試的硬體架構和資料庫軟體架構都可能有所不同。
  • 獨家解讀:螞蟻金服自研資料庫OceanBase如何登頂TPC-C
    TPC 的成員主要是業界主流的計算機軟硬體廠家,其職責是制定企業級應用基準測試考評的標準規範,並且衡量整體系統的性能和性價比,管理測試結果的認證和發布。Oracle、IBM、微軟等公司的多個資料庫產品曾多次參與這個測評並且是主要領先成績的保持者。
  • 解析大數據基準測試——TPC-H or TPC-DS
    健壯性測試基準要足夠健壯,不能輕易被「hack」,這對測試結果的公平性非常重要。例如對TPC-H的前身TPC-D,通過物理化視圖,Oracle的性能比Micosoft的SQLServer高100倍,這些顯然是不公平的。因此TPC組織規定TPC-H測試中物理化視圖是不和法的。但是除非是專業人員,一般用戶很難判定測試過程中視圖有沒有被物理化。
  • 常熟銀行數位化轉型的「尖端神器」 支付寶OceanBase再度登頂TPC-C
    5月20日,據資料庫權威機構國際事務處理性能委員會(Transaction Processing Performance Council)相關資料顯示,OceanBase作為螞蟻「十年磨一劍」自主研發的金融級分布式關係資料庫,再度刷新由自己保持的世界紀錄,將事務處理性能由上次測試的6088萬tpmC提升到7.07億 tpmC,繼續穩居王冠寶座。
  • PHP 8 性能基準測試結果公布
    上圖顯示了使用 PHPbench 測試各版本 PHP 的性能結果。可以看到,從 PHP 7.4 stable 到 PHP 8 有小幅度改進,大約是 7% 的提升,但如果 PHP 8 啟用了 JIT,性能改進可以說是非常明顯,比 PHP 7.4 stable 提升了 92%。至於更舊的版本,PHP 8 with JIT 的性能是 PHP 5.4 的 5 倍。
  • 【翻譯】TPC-DS標準規範(二)
    3.1.5 不同數據量下的計算難度不同,因此使用不同的標度因子,其結果之間無法進行比較。3.2 測試資料庫標度3.2.1 測試資料庫是用於進行資料庫的負載測試和性能測試的資料庫(見第7.4節)。3.2.2 每個標度因子和測試資料庫中的每個表的行數見3-2表中的資料庫行數。
  • 十年磨一劍:從2009啟動「去IOE」工程到2019年OceanBase拿下TPC-C...
    2019年10月,OceanBase TPC-C 世界第一!熱烈祝賀正祥和OB團隊。今天我們可以自豪地說,阿里巴巴數字經濟體的小二們,十年磨一劍,終於解決了困擾國家已久的信息技術三大軟肋(「CPU晶片、作業系統、資料庫」)之一的資料庫難題,OceanBase 100% 完全自主研發、安全可控!
  • Python 調用 C 模塊以及性能分析
    >>> cc_int(34)>>> c.value34>>> c.value=343>>> c.value3433.操作字符串>>> p=create_string_buffer(10)
  • golang 基準測試和性能測試總結
    基準測試就是在一定的工作負載之下檢測程序性能的一種方法。5007372和248ns/op表示每次調用Split函數耗時203ns,這個結果是10000000次調用的平均值。再或者對於同一個任務究竟使用哪種算法性能最佳?我們通常需要對兩個不同算法的實現使用相同的輸入來進行基準比較測試。性能比較函數通常是一個帶有參數的函數,被多個不同的Benchmark函數傳入不同的值來調用。
  • 性能測試中異步展示測試進度
    在進行性能測試的過程中,通常可能會遇到長時間測試的情況,但是在這過程中很難控制壓測進度(偷偷告訴你終止性能測試並輸出報告可以實現)。為了解決無法實時掌控測試進度的問題,我寫了一個多線程類,主要的功能就是異步完成對性能測試進度的收集和輸出。
  • 2019年的第一次重要升級:OushuDB 3.3完整支持TPC-H,性能提升5-10倍
    的支持新執行器支持Hash分布的可插拔存儲新執行器支持insert語句新執行器支持Coalesce, Distinct表達式新執行器新增函數的支持,包括decode, round, sign, substr, upper和lowerOrc的BloomFilter支持基於列的打開關閉選項Orc格式新增支持decimal, timestamp with time zone數據類型優化了Orc格式老執行器查詢性能
  • 圖形性能提升明顯 驍龍805解析/性能測試
    首先是針對CPU,反應瀏覽器性能的Javascript基準測試Sunspider,時間越短越好。驍龍805相對於驍龍801有約6%的性能提升,原因來自於0.2GHz的CPU主頻提升。不過考慮到架構本身的原因,還是比不上Cortex-A15以及蘋果A7的Cyclone的性能的。
  • 打破世界紀錄的資料庫OceanBase
    一年之後的2019年10月2日,在另一個特殊的賽場上,中國人又破了一項塵封9年的世界紀錄——全球資料庫領域最權威的國際事務處理性能委員會(TPC)在其官網上宣布,阿里巴巴/螞蟻金服的分布式關係資料庫OceanBase打破資料庫基準性能測試(TPC-C)的世界紀錄,其tpmC值超過6000萬,是前世界紀錄保持者Oracle資料庫的兩倍。
  • OceanBase刷新世界紀錄,支付寶再闖「無人區」
    這一次,OceanBase再破世界記錄,性能分數首次突破億級大關達到7.07億tpmC,相比去年提升近11倍。TPC-C是全球最具公信力的聯機交易處理資料庫的功能與性能結合的測試標準,金融、電信、政府等關鍵領域的客戶一般參照 TPC-C 結果來衡量各個資料庫廠商的事務處理能力。通俗來講,TPC-C測試是對於商業資料庫想要證明自身實力的一個硬性門檻,被譽為「資料庫領域的世界盃」。
  • Greenplum內核優化實戰:手把手教你提升數倍SELECT性能
    6 OLTP (TPC-B) 性能提升60倍),已經可以滿足大部分OLTP應用場景。這個過程非一日之功,也涉及到系統的各個層面的優化和重構,本文手把手的示範如何分析發現瓶頸,以及如何優化內核提升性能,揭秘MPP資料庫內核調優,鼓勵歡迎更多人在社區裡參與這類工作。本文的例子採用分支6.0.0-beta.1。測試環境是GCP的機器,32 vCPUs, 28.8 GB, 512 SSD persistent disk。作業系統是Ubuntu 18.04.2 LTS。
  • 【PS速報】模擬測試,PS5的CPU性能為PS4的4倍?
    目前,索尼已經公布PS5使用的是AMD Zen 2架構的CPU,但性能如此強大的CPU對開發人員來說有多大的優勢呢?
  • 性能測試模型實戰分析 | C/S 架構的應用如何進行性能測試
    確定的測試通過準則、性能測試的計劃、結果要獲得客戶的認可要和客戶確認,系統的性能指標達標的標準是什麼;對於性能測試中各個部分和步驟的計劃和結果,甚至是性能測試過程,都要根據其重要程度,決定是否需要客戶進行確認和籤字。獲得客戶的認可是最重要的。