OceanBase 2.0讓百萬支付不是夢?

小螞蟻說:

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

OceanBase 2.0讓百萬支付不是夢?

​背景

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

百萬支付

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

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

OceanBase 2.0讓百萬支付不是夢?

OceanBase 2.0整體架構

原理分析

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

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

OceanBase 2.0分區方案

OceanBase 2.0讓百萬支付不是夢?

關鍵點:

  • 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科技大會走過杭州、硅谷、新加坡、倫敦等全球金融科技中心城市,之後將會造訪國內各個金融科技中心城市,與當地受眾分享螞蟻金服對金融科技最前沿的洞察。

OceanBase 2.0讓百萬支付不是夢?

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

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

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

還等什麼,趕緊點擊下方報名鏈接,小螞蟻期待你的到來~~

ATEC報名鏈接:

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


分享到:


相關文章: