獨家解讀:螞蟻金服自研資料庫 OceanBase 如何登頂 TPC-C

2021-02-15 AI前線

AI 前線導讀:10 月 2 日,國際事務處理性能委員會(TPC)宣布:在最新發布的 TPC-C 排行榜中,螞蟻金服自研資料庫 OceanBase 位列第一。InfoQ 記者第一時間採訪到螞蟻金服研究員、OceanBase 主架構師楊傳輝(日照),請他解讀這份 TPC-C 榜單,同時介紹 OceanBase 積累九年多才正式參與 TPC-C 打榜的過程和意義。

更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front) InfoQ:請從專業性和權威性,參與標準和參與流程上,介紹一下 TPC-C 的測試結果,對於資料庫廠商來說意味著什麼?

TPC 是由數十家會員公司創建的非盈利組織,成立於 1988 年,總部設在美國,圖靈獎得主 Jim Gray 是奠基人。TPC 的成員主要是業界主流的計算機軟硬體廠家,其職責是制定企業級應用基準測試考評的標準規範,並且衡量整體系統的性能和性價比,管理測試結果的認證和發布。Oracle、IBM、微軟等公司的多個資料庫產品曾多次參與這個測評並且是主要領先成績的保持者。TPC-C 是 TPC 組織制定的關於 OLTP 資料庫事務處理能力的基準測試,金融、電信、政府等關鍵領域的客戶一般參照 TPC-C 結果來衡量各個資料庫廠商的事務處理能力。

只有在 TPC 官方網站上得到認證,得到國際機構審計的測試結果才是 TPC 機構認可的測試結果。TPC-C 認證要求非常嚴格,大到性能、功能、數據一致性和容災能力,小到測試過程中使用過的滑鼠鍵盤價格,都需要嚴格披露,確保測試可復現且與真實業務場景保持一致。OceanBase TPC-C 僅僅認證過程就花費超過半年時間。

資料庫的核心能力包括性能、成本、功能、生態等等,而 TPC-C 是全球 OLTP 資料庫最權威的性能測試基準。TPC-C 登頂是每個 OLTP 資料庫廠商的夢想,登頂意味著具備世界級的事務處理能力,能夠滿足無論是網際網路還是金融、電信、政府等關鍵領域的核心系統的事務處理需求。目前在 TPC-C 指標上,螞蟻金服是唯一一家中國上榜企業。

InfoQ:OceanBase 此前參與過該基準測試嗎?取得的成績是什麼?

幾乎每個 OLTP 資料庫都會在測試環境中跑 TPC-C 基準測試,OceanBase 也不例外。雖然 OceanBase 在阿里巴巴「雙十一」等業務場景中積累了非常好的高並發事務處理能力,但 TPC-C「打榜」難度非常之大,OceanBase 積累了九年多才選擇正式參與 TPC-C 打榜。

InfoQ:請詳細介紹此次 OceanBase 參與測試的全過程,包括:如何參與?過程中需要配合提交什麼?

每家資料庫廠商都可以參與 TPC-C,只需要郵件聯繫 TPC 官方組織報名參加即可,關鍵在於資料庫廠商有沒有能力通過測試並得到好的結果。

OceanBase TPC 審計分成三個階段:第一個階段稱為準備階段,根據 TPC-C 規範的要求實現必須的功能並做好性能優化,這個階段需要把測試規範理解清楚,並把每個疑問都和審計員通過郵件溝通清楚。需要注意的是,TPC-C 審計非常嚴格,一定要細化到 TPC-C 規範的每個條目,任何一條不符合規範都會導致測試不通過;第二個階段稱為現場預審計,美國的審計員來到螞蟻金服杭州總部,和 OceanBase 團隊成員一起完成功能測試、ACID 測試、性能測試、宕機測試、架構和代碼 Review、性能成本計算等全部過程。當時在這個過程中發現了一些問題,OceanBase 團隊後續幾周進行了全部的改正;第三個階段稱為正式審計,OceanBase 團隊按照審計員給的檢查列表修改完成所有預審計階段發現的問題,每一項都得到審計員確認後再運行最終測試,最後完成 FDR(Full Disclosure Report)完整披露報告並向 TPC 技術委員會正式提交結果。

InfoQ:我們應該如何看懂目前官網披露的 TOP10 結果中,各類相關指標背後的意義?比如性能、價格、CPU...

TPC-C TOP10 結果中,有些是資料庫公司測試的,有些是硬體公司測試的,不同測試的硬體架構和資料庫軟體架構都可能有所不同。TPC-C 是開放的測試基準,不管採用什麼架構都可以來參加測試,只要符合 TPC-C 規範即可,最終的衡量標準主要是兩個:一個是性能(tpmC),還有一個是性價比(price/tpmC)。 性能表示資料庫能夠跑多快,性價比表示資料庫的成本能夠做到多低。

關於性能,TPC-C 測試模擬商品交易,包含五種事務:NewOrder 創建新訂單(佔比 n/a)、Payment 支付訂單(佔比>=43%)、OrderStatus 查詢最近訂單(佔比>=4%)、Delivery 批量配送訂單(佔比>=4%)和 StockLevel 庫存狀態分析(佔比>=4%)。TPC-C 雖然沒有規定 NewOrder 事務的佔比,但通過其它四種事務的佔比可以反推 NewOrder 佔比<=45%。而 TPC-C 的性能指標用 tpmC(transaction-per-minute-C)來衡量,表示每分鐘執行的 NewOrder 事務數,因此,實際測試時,NewOrder 佔比往往都是 45%,相應地,Payment 佔比 43%,另外三種事務佔比 4%。另外,TPC-C 測試要求 10% NewOrder 分布式事務,以及 15% Payment 分布式事務。

關於價格,TPC-C 測試綜合計算軟硬體價格以及三年服務價格,軟硬體價格除了資料庫和存儲,還包括針對 TPC-C 場景開發的應用系統,甚至連測試使用的臺式機也需要計算在內。軟體價格和硬體價格最好區分開來,硬體價格代表商業資料庫的真實成本,軟體價格代表商業資料庫的利潤。例如,OceanBase 這次 TPC-C 測試的總體價格雖然不低,但是硬體價格佔比很低(不到 18%),真實性價比遠遠高於第二名 Oracle,整體性價比和 Oracle 比較接近更像是一種定價策略。另外,TPC-C 測試要求磁碟至少能夠存儲 60 天的數據量。集中式資料庫往往存儲一份數據,而 OceanBase 採用 Paxos 協議實現 RPO = 0,在 TPC-C 測試以及主流生產系統中都存儲了 2 份數據和 3 份日誌,相當於 OceanBase 需要提供 120 天的存儲容量並計入價格。

關於 CPU,這裡有兩個關鍵點:

1、對於集中式架構,除了資料庫使用 CPU 之外,專用存儲設備也需要使用 CPU。例如,第二名 Oracle 3000 多萬 tpmC 的測試中,資料庫使用了 108 顆 T3 SPARC 處理器,共有 1728 個物理核心和 13824 個執行線程,同時存儲設備使用的是 Intel 伺服器作為機頭,總共使用了 97 臺伺服器,194 顆 Intel X5670 CPU,2328 個物理核心。

2、TPC-C 基準測試無法簡單地通過增加 CPU 核來提升性能。這是因為,TPC-C 考察分布式事務,資料庫軟體如果做得不好,無論怎麼增加 CPU 也無法提升 TPC-C 性能。Oracle 因為其 RAC 技術可以把 OLTP 資料庫伺服器擴展到幾十個節點,其它軟硬體廠商憑藉單機無法超越,直到 OceanBase 實現了真正的 OLTP 分布式資料庫技術。

InfoQ:從結果來看,OceanBase 提交時間是 2019 年 10 月 2 日,其他幾家提交時間是 2011 年、2010 年... 為何大家提交時間如此不同?不同時間提交的結果,具有可比性嗎?

TPC-C 測試是需要有驅動力的,Oracle 2010 年測試得到 3000 多萬的結果之後就「獨孤求敗」了,其它廠商測不過,Oracle 也缺乏刷新自己保持的記錄的動機。Oracle 最新的測試結果是 2013 年 3 月份做的,在榜單的第四名,當時也是為了推廣 Sun 的 SPARC 處理器。大家關注的往往都是榜單的前幾名,Oracle、DB2 和 SQL Server 這三家公司把 TPC-C 性能測得太高了,導致其他廠商基本沒有機會進入 TPC-C 榜單前幾名,與其測出普通的結果,還不如乾脆保持「神秘」,OceanBase 也是準備了九年確保能夠上榜之後才正式測試。

OceanBase 和榜單前幾名的測試時間相差比較大,本質的原因在於其它資料庫採用的是專用硬體(專用伺服器 + 專用高端存儲),OceanBase 採用的是基於普通 PC 伺服器的分布式架構。採用分布式架構之後,OceanBase 的硬體成本大幅優於專用硬體,這幾年硬體性價比提升的主要受益者也是普通 PC 伺服器。所以,這裡更多是專用硬體和分布式架構的區別,而不在於測試時間的差別。 當然,基礎軟體重大創新的時間周期是很長的,一般需要十年以上的積累,銀行核心業務今天使用的大型機還是幾十年前的技術。

InfoQ:據介紹此次測試結果是在阿里雲支持下實現的,這意味著什麼?硬體產品與測試結果之間的關係是什麼?

TPC-C 測試需要考察三年軟硬體總費用,如果採用獨立部署的模式,需要購買全部硬體,例如第二名 Oracle 測試的硬體總體成本大約 3000 多萬美金,絕大多數商業公司都是玩不起的。而 OceanBase 採用阿里巴巴公有雲提供的 ECS 雲伺服器,測試多長時間就租用多長時間,使得測試成本大幅降低。

TPC-C 測試要求在峰值性能穩定運行 8 個小時,其中至少 2 小時性能抖動不超過 2%,OceanBase 做到了 8 小時性能抖動不超過 2%,無論對資料庫軟體還是硬體挑戰都非常大。OceanBase 在阿里雲支持下完成此次 TPC-C 測試,總共使用了 204 臺 ECS i2 雲伺服器。另外,TPC-C 模擬的是銀行的交易核心,對穩定性和宕機恢復都有嚴格的要求,說明 OceanBase 能夠在阿里雲上提供金融級的可靠性。

InfoQ:有人說 OceanBase 取得的測試結果是被「雙十一」這樣的業務倒逼的,我們應該如何理解業務倒逼技術?

OceanBase 從 2010 年開始立項就定位要做世界級的分布式資料庫,然而,好的技術一定要先有好的業務場景。對於資料庫這樣的基礎軟體,想要彎道超車,更是需要重量級的業務場景。每年「雙十一」零點的峰值壓力對於高性能資料庫是絕佳的練兵場,OceanBase 也是在阿里內部經過了多年的「雙十一」歷練之後才開放給金融以及其它行業的客戶。

對於資料庫這樣的通用技術來說,既要業務需求倒逼但同時又要超出業務需求。資料庫的整體設計一定是面向通用場景,遵守資料庫行業國際標準,例如針對資料庫語法的 SQL 規範,以及針對資料庫性能的 TPC-C 測試規範;同時,資料庫的功能集合很大,需要根據業務需求合理安排研發優先級,研發團隊成員才能從解決實際業務問題中找到成就感。

InfoQ:我們如何看待國內廠商積極參與 TPC 測試?

TPC 是資料庫行業針對性能測試的國際權威標準,國內廠商積極參與 TPC 測試,本身也是中國資料庫行業自信的一種體現,表明中國資料庫可以逐步參與全球競爭。中國的資料庫需要回歸研發本質,具備自主研發和自主創新能力。對於 TPC-C 測試,我也看到部分國內廠商採用未經官方認證的標準,我認為這是不合適的。OceanBase 後續會將 TPC-C 測試工具開源,使其它資料庫廠商也能夠簡單地完成符合審計標準的 TPC-C 測試,進一步促進中國資料庫產業和國際接軌。

InfoQ:OceanBase 在兼容 Oracle 方面,目前的主要進展是什麼?接下來的發展計劃是什麼?

本次 TPC-C 測試採用的是 OceanBase 2.2 版本,OceanBase 2.2 已經初步具備 Oracle 兼容能力,OceanBase TPC-C 測試採用的就是完全兼容 Oracle 的存儲過程語法。阿里巴巴內部有部分 Oracle 業務已經平滑遷移到 OceanBase,阿里巴巴外部也有股份制銀行正在將 Oracle 業務平滑遷移到 OceanBase。 接下來,OceanBase 還會進一步加強 Oracle 兼容特性,重點加強分布式優化器和執行器的核心能力。

嘉賓介紹:

楊傳輝(日照),螞蟻金服研究員,OceanBase 主架構師,負責 OceanBase 研發,職業生涯先後在百度和阿里從事雲計算和分布式資料庫內核研發工作,著有《大規模分布式存儲系統:原理與實踐》。

附:OceanBase 大事記

2010 年:創始人陽振坤加入阿里巴巴,OceanBase 正式立項;

2011 年:OceanBase 0.1 版本發布,應用於淘寶收藏夾;

2014 年:OceanBase 0.5 版本發布,替代 Oracle 在支付寶交易系統上線,負擔「雙十一」10% 流量;

2015 年:網商銀行成立,OceanBase 成為全球首個應用在金融核心業務系統的分布式關係資料庫;

2016 年:OceanBase 1.0 版本在支付寶帳務系統上線,支撐 12 萬筆 / 秒支付峰值;

2017 年:支付寶首次把帳務庫在內的所有核心數據鏈路搬到 OceanBase 上,創造 4200 萬次 / 秒資料庫處理峰值紀錄。同年,OceanBase 1.x 版本在多家商業銀行上線;

2018 年:OceanBase 2.0 版本正式發布,降低金融業務向分布式架構轉型的技術風險;

2019 年:OceanBase 獲得 TPC-C 基準測試排名榜首。

延伸閱讀:

《支付寶背後的 OceanBase:國產自研分布式資料庫這十年》https://www.infoq.cn/article/O8xlkHWaXfYw_MjUyjbY

《螞蟻金服:OceanBase 如何實現透明可擴展的企業級資料庫?》https://www.infoq.cn/article/pUL7O3zafPgWBldK-IRV

《螞蟻金服自研資料庫 OceanBase 的前世今生:從瀕臨解散到浴火重生》https://www.infoq.cn/article/u-mHgi4zIH6bo5ZB3I49

相關焦點

  • 獨家解讀:螞蟻金服自研資料庫OceanBase如何登頂TPC-C
    10 月 2 日,國際事務處理性能委員會(TPC)宣布:在最新發布的 TPC-C 排行榜中,螞蟻金服自研資料庫 OceanBase 位列第一
  • 國產資料庫 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登頂TPC-C引起業內廣泛關注,為了更清楚的展示其中的技術細節,我們特意邀請OceanBase核心研發人員對本次測試進行技術解讀,共包括五篇:1)TPC-C基準測試介紹2)OceanBase如何做TPC-C測試3)TPC-C基準測試之SQL優化
  • 螞蟻金服自研資料庫拿下世界第一,此前已被美國Oracle制霸9年
    來源:IT之家IT之家10月4日消息 據中新網報導,10月2日,國際事務處理性能委員會(Transaction Processing Performance Council,簡稱TPC)公布了資料庫最新性能測試結果,阿里巴巴關聯公司螞蟻金服自主研發的資料庫位列第一位
  • 打破世界紀錄的資料庫OceanBase
    又是一年「雙11」OceanBase「三大創舉」在2019數據技術嘉年華上,OceanBase總架構師、螞蟻金服研究員楊傳輝(日照)向筆者透露,今年天貓「雙11」期間,OceanBase資料庫確有「三大創舉」:第一,今年OceanBase資料庫首次從MySQL模式切換為更適合企業級應用的Oracle模式;第二,OceanBase資料庫單機性能優化提升
  • 常熟銀行數位化轉型的「尖端神器」 支付寶OceanBase再度登頂TPC-C
    在金融級資料庫領域中,OceanBase當屬首屈一指。5月20日,據資料庫權威機構國際事務處理性能委員會(Transaction Processing Performance Council)相關資料顯示,OceanBase作為螞蟻「十年磨一劍」自主研發的金融級分布式關係資料庫,再度刷新由自己保持的世界紀錄,將事務處理性能由上次測試的6088萬tpmC提升到7.07億 tpmC,繼續穩居王冠寶座。
  • 支付寶自研資料庫 OceanBase 全球開放,可兼容 Oracle
    IT之家3月25日消息 今天下午,由支付寶自研的金融級分布式資料庫OceanBase正式通過阿里雲向全球開放,企業可在雲上獲得「支付寶同款」的資料庫處理能力。支付寶方面介紹稱,2010年,為滿足高速增長的業務需求,阿里巴巴、支付寶開始自主研發資料庫系統OceanBase,來取代Oracle等傳統資料庫。2014年,OceanBase替換了支付寶交易系統中的Oracle資料庫。2015年,OceanBase替換了支付寶支付系統中的Oracle資料庫。
  • 解密:OceanBase如何在TPC-C測試中獲得創紀錄的7億tpmC?
    TPC-C是全球最具公信力的聯機交易處理資料庫的功能與性能結合的測試標準。通俗來講,TPC-C測試是對於商業資料庫想要證明自身實力的一個硬性門檻。   去年10月份OceanBase登頂TPC-C榜單,雖然成績已經達到了之前榜首Oracle的兩倍,但首次測試尚未充分發揮OceanBase分布式架構的真正實力。
  • OceanBase刷新世界紀錄,支付寶再闖「無人區」
    支付寶OceanBase再次登頂TPC-C榜單而此次通過最新測試,OceanBase成為唯一超千個節點並通過TPC-C測試的分布式資料庫,成績較去年更勝一籌。從關係資料庫的角度看,在這麼大體量下,通過測試已經非常困難,保持系統性能更加困難。1500多個資料庫節點,5000多萬個倉庫以及對應數量的客戶端,並進行8個多小時的持續壓測,對整個系統是極大的考驗。 而我們之所以說OceanBase實現了突破和顛覆,關鍵就在於其採用了新一代分布式設計技術,顛覆了傳統資料庫集中式處理技術架構。 如何理解?
  • 阿里雲技術再突破 自研資料庫AnalyticDB登頂TPC-DS
    TPC-DS是業內公認的高難度資料庫系統測試基準,被譽為「資料庫分析場景珠穆朗瑪峰」。它從數據導入、查詢性能(單並發、多並發)、查詢複雜度(星型/雪花模型、複雜Window function支持)、可用性(數據一致、壞盤容錯處理等)等方面嚴格考核,並進行嚴苛審計,是衡量資料庫和大數據系統成熟度、競爭力的絕佳標準。
  • 為何經過40多年的發展關係型資料庫依然是主流?OceanBase 2.2免費...
    螞蟻金服近期開展的 「共戰『疫情』,技術破局」數字課堂線上直播系列演講我們將整理並發布在 「螞蟻金服科技」 公眾號上,歡迎關注。  今天將全面解讀OceanBase 2.2版本的核心特性,解析在異地容災多活、在線數據遷移等場景下OceanBase的完整解決方案,以下為OceanBase團隊的慶濤老師演講整理全文:  大家下午好。我是來自螞蟻金服OceanBase團隊的慶濤,很榮幸能在雲棲社區直播平臺為大家分享OceanBase資料庫的相關知識。
  • OceanBase亮相CNCC 2020,這次是為培養更多分布式資料庫人才
    其中「資料庫領域校企合作探索」論壇將邀請四位行業資深技術專家及學界泰鬥帶來精彩演講,從資料庫在產業實踐的經驗體會分享,到全新的產教研融合創新模式的探討,再到資料庫行業人才生態戰略的深入探索。事實上,資料庫和作業系統一樣,都是IT行業的重要基礎軟體。到如今 2020 年,中國資料庫的發展已經歷時四十多年,正在以一種前所未有的速度和力量成長。
  • 性能提升 10 倍,OceanBase 二次 TPC-C 測試結果公布
    不過,一些資料庫公司,如 Oracle 並未參與這兩次測試。性價比衡量資料庫單位成本,以系統的總價格/tpmC 數值得出。TPC-C 是開放的測試基準,這樣即便是參與測試公司的硬體架構和資料庫軟體架構有所不同,只要符合其規範,都可以參與測試。
  • 開啟無現金紅利期 螞蟻金服深耕開放平臺
    在6月7日的螞蟻開放日上海站上,螞蟻金服宣布將進一步向線上、線下商家逐步開放花唄分期能力。  「我們的開放才剛剛開始。」螞蟻金服支付寶事業群副總裁鄒亮表示,「在整個平臺能力開放裡面,我們希望支付是一個統一的基礎入口,通過支付,能夠完成從基礎能力到運營能力到金融能力——這三層能力的建設。」
  • 山東移動核心系統採用螞蟻集團自研資料庫OceanBase
    螞蟻集團自研資料庫OceanBase正被更多非金融客戶用在核心系統上。記者今日從螞蟻集團了解到,山東移動計費業務系統已經正式「跑上」OceanBase,這是螞蟻集團自研資料庫在非金融領域的又一合作夥伴。
  • 中國自研資料庫超越Oracle登頂全球第一
    螞蟻金服自主研發的資料庫OceanBase打破資料庫基準性能測試的世界記錄,成績是前世界記錄保持者、老牌巨頭甲骨文(Oracle)的兩倍。資料庫領域最權威的國際機構國際事務處理性能委員會(TPC,Transaction Processing Performance Council)在官網發表了這一最新結果。
  • 世界排名第一的支付寶自研資料庫OceanBase向全球開放!
    在上個月月末,由支付寶自研的金融級分布式資料庫OceanBase正式通過阿里雲向全球開放,提供高可用、高性能、低成本的計算服務,企業可在雲上獲得「支付寶同款」的世界頂級資料庫處理能力。資料庫和作業系統一樣,是IT行業的重要基礎軟體,也是「核高基」中的「基礎軟體產品」之一。多年以來,囿於技術實力和軟體開發的滯後性,翻越資料庫這座大山並不容易,而阿里的OceanBase從誕生到雲上觸手可及,用了整整十年之久。
  • 【國慶快報】螞蟻自研資料庫OceanBase拿下世界第一;網易有道美...
    大公司動向螞蟻自研資料庫OceanBase拿下世界第一!性能超老牌資料庫Oracle 100%10月2日,資料庫領域最權威的國際機構國際事務處理性能委員會(TPC,Transaction Processing Performance Council)在官網發表了最新的TPC-C 基準測試結果。
  • 螞蟻金服掀造富運動!多位技術員或實現財務自由,賣別墅大平層的...
    據了解,在螞蟻金服四年(2016年)以上的員工,都會有公司股票作為激勵。截至招股書籤署日,螞蟻股權激勵計劃一共授予員工30.79億股,上市時這些股票的市場價值約為1590億元,這筆巨大的財富將由1.66萬名螞蟻員工和部分阿里系員工共同分享。
  • 十年磨一劍:從2009啟動「去IOE」工程到2019年OceanBase拿下TPC-C...
    今天我們可以自豪地說,阿里巴巴數字經濟體的小二們,十年磨一劍,終於解決了困擾國家已久的信息技術三大軟肋(「CPU晶片、作業系統、資料庫」)之一的資料庫難題,OceanBase 100% 完全自主研發、安全可控!