1. 程式人生 > >OceanBase 2.0讓百萬支付不是夢?

OceanBase 2.0讓百萬支付不是夢?

小螞蟻說:

你們都很關心的 “OB雙11大促實戰分享” 專題來啦!本系列將為你係統性的介紹OceanBase支撐螞蟻雙11背後的技術原理和實戰分享。從平臺到架構,再到實現,一起來探索螞蟻雙11這場神祕的技術之旅吧!

72e557c08463a0fac1bc095e25b5c3fbfd4883c0

背景

伴隨著螞蟻業務的蓬勃發展,特別是每年雙11大促不斷創造新的高峰, 交易支付核心鏈路提出了未來實現百萬筆支付/秒的能力 。為了實現這個巨集偉目標,特別是提高資料庫層面分散式擴充套件能力,如原生sharding/分散式事務優化,OceanBase 2.0分散式資料庫應運而生。

百萬支付

傳統資料庫擴容方案,主要是依賴分庫分表拆分進行水平擴容,螞蟻資料庫初期也是同樣思路,通過LDC單元化改造,核心表按使用者UID維度拆分成百庫百表。

但是隨著業務發展,特別是2017年的雙11大促,峰值需求已經遠遠超過單庫單機的最大容量。針對這個問題,我們使用彈性架構,即在大促前,新增兩套彈性資料庫,多套庫共同支援大促峰值。彈性架構雖然解決了大促容量需求,但是也存在一些缺陷,業務在資料路由、後期維護及資料配套設施都非常複雜繁瑣。有沒有更優雅的分散式資料庫解決方案,即只使用一個庫,就可以支援百萬甚至更高的支付峰值,OceanBase 2.0分割槽提供了完美的解決方案。

d9f1a5007e8e27daba0cd100ff202948f470e7f7

OceanBase 2.0整體架構

原理分析

OceanBase 2.0分割槽方案思路和傳統的分庫分表拆分一樣。我們在交易支付核心庫上,在原有百庫百表的基礎上繼續按使用者UID進行更深層次拆分,每個分表再拆分成多個partition,應用端只看到一張表,在使用者無感知的前提下把資料拆分到無限多的機器上,突破單機效能瓶頸,自動負載均衡,從而實現百萬支付的能力。

同時為了極致效能,OceanBase 2.0提供了partition group功能,將業務使用的多張邏輯表(table_1、table_2、... table_n),按共同的partition聚合在同一臺伺服器上面,從而避免了分散式事務帶來的額外開銷。

OceanBase 2.0分割槽方案

a59caf9324ce177e98484762689bc5024662bc52

關鍵點:

  • APP端請求SQL,帶上包含分割槽的欄位—UID資訊(如payment_id列)。
  • SQL如果沒有分割槽資訊,則在OBServer端平行計算優化。
  • OBClient負責分割槽計算及路由,確保第一跳準確定位到對應分割槽所在伺服器,避免遠端執行。
  • OBServer端基於生成列partition_id進行內部分割槽,不侵入業務。
  • OBServer端約束描述多維度分割槽,實現分割槽裁剪功能。

優點:

  • 業務友好:不改變SQL語義,應用程式碼不感知分割槽資訊。
  • 架構通用:約束功能,實現分割槽裁剪;OBServer提供兜底訪問能力。
  • 高效能低成本:使用低配置伺服器,自動負載均衡,資源利用率高。

OceanBase 2.0效能優化

  • 分散式事務消除:partition group方式,事務涉及所有表的partition按照分割槽鍵儲存至同一物理機。
  • 兩階段提交協議優化:結合事務與日誌,事務prepare成功後記憶體不用持久儲存狀態,按需從日誌中查詢;commit狀態持久化轉換成後臺批量完成。
  • Commit非同步化:非同步化後Worker不等待繼續執行佇列中下一個請求,日誌持久化成功後會非同步回撥。
  • 記憶體分配器優化:組織了兩層對映關係,既要提升效能又要支援大量分割槽。
  • 儲存優化:資料編碼技術實現高壓縮。

優化結果:

整體效能OceanBase 2.0版本較OceanBase 1.4版本效能提升50%,儲存空間節省30%。

總結

2018天貓雙11全球狂歡節成交額超過2135億,OceanBase 2.0成功經受住了考驗,全面支撐了支付寶核心鏈路 ,平穩抗住0:00:00時的峰值壓力,夯實三年戰略“百萬支付”的底盤能力。

OceanBase 2.0還有很多重要特性,比如分散式全域性索引、分散式全域性一致性快照、分散式儲存過程、索引實時生效、Flashback閃回功能等,這些新功能將強有力支援企業不同業務場景下的持續創新。

加入我們

【資料庫智慧化開發】

崗位描述:

1、負責螞蟻金服資料庫智慧運維平臺應用架構設計和實施落地,使系統體系化並具有前瞻性,能快速發現異常和風險隱患,自動識別原因並修復故障源/風險點,實現self-healing、self-scaling、self-tuning的自治資料庫目標;

2、負責構建資料庫統一技術風險、業務容量和穩定性的資料模型,以資料為支撐驅動診斷、容量、高可用、業務最佳實踐等核心問題的資料庫智慧運維發展;

3、獨立完成大型專案的系統分析設計,並負責核心模組研發,完成系統Code Review的任務,提供相關效能以及安全的建議。

【資料庫平臺前端開發】

崗位描述:

負責螞蟻金服資料庫DevOps平臺產品的前端研發,通過專業的前端技術能力為整套資料庫產品提供優秀的前端解決方案。

【資料庫平臺後端開發】

崗位描述:

1、負責螞蟻金服資料庫基礎平臺、容器化、高可用體系等領域的平臺研發;

2、通過平臺化思路,持續優化系統維護工作效率,把控技術風險,用工程的思路解決遇到的問題;

3、負責螞蟻金服資料庫智慧平臺應用架構設計和系統實施,使系統體系化並具有前瞻性,能快速發現業務風險和及時管控;獨立完成大型專案的系統分析設計,並負責核心模組研發;負責完成系統Code Review的任務,確保相關程式碼的有效性和正確性,並能夠通過Code Review提供相關效能以及安全的建議。

【資料庫SRE】

崗位描述:

1、負責資料庫高可用平臺體系、基礎設施的開發和建設,追求100%的服務持續可用、秒級故障恢復能力;

2、負責資料庫成本優化,通過新技術、新產品、新方案全方位地優化系統性能;

3、負責資料庫相關平臺和工具產品的建設,持續改進業務研發和系統維護效率,用工程的思路解決遇到的問題;

4、負責資料庫架構設計,基於高可用、高效能、防資損等視角,與業務團隊一起進行資料架構設計;

5、負責公司重大業務活動(如雙11/雙12)資料庫保障,致力於讓使用者感覺絲般順滑;

6、負責資料庫新技術的探索及落地,如儲存計算分離、資料庫容器化等。

可直接傳送簡歷到 [email protected],我們等的就是你!

螞蟻金服ATEC城市峰會·上海

2019年1月4日,一場金融科技的前沿探索之旅——螞蟻金服ATEC科技大會即將起航,你準備好了嗎?小螞蟻為大家準備了滿滿了攻略福利,等你來拿!瞭解螞蟻金服科技開放,瞭解螞蟻金服ATEC科技大會更多資訊,請搜尋螞蟻金融科技官網(tech.antfin.com)

ATEC科技大會:

螞蟻金服ATEC(Ant Technology Exploration Conference)科技大會是螞蟻金服在中國舉辦的最大的技術盛會,旨在向遍佈全球的合作伙伴與技術專業人群分享新技術的發展趨勢與落地實踐,通過對先進的前沿技術探索與討論,為世界帶來平等的機會。ATEC大會一直在路上。過去一年,螞蟻金服ATEC科技大會走過杭州、矽谷、新加坡、倫敦等全球金融科技中心城市,之後將會造訪國內各個金融科技中心城市,與當地受眾分享螞蟻金服對金融科技最前沿的洞察。

47d43e2dffbb916708ff788537c61c868bb1a443

ATEC科技大會報名方式 & 福利:

本次大會門票採用稽核制。嘉賓填寫個人資訊進行報名,報名後3天之內收到報名稽核成功的簡訊,即為報名成功。大會報名截止日期為2018年12月31日24時,額滿即止。

小螞蟻還為大家準備了本賬號讀者的專屬福利邀請碼: SF2B3A 

還等什麼,趕緊點選下方報名連結,小螞蟻期待你的到來~~

ATEC報名連結:

https://tech.antfin.com/articles/activity/atecshanghai