阿裡雲資料庫已連續多年穩定支撐天貓雙11,曆經極端流量場景淬煉。除了保障穩定順滑的基本盤,今年大促期間資料庫通過全面雲原生化,大幅提升使用者體驗,讓技術幫助業務産生更有價值的消費者體驗,持續通過技術創新賦能使用者,引領技術發展路徑。
雙11已圓滿落幕,但技術的探索,仍未止步。
“阿裡雲資料庫” 公衆号特此推出《好科技的新起點——2021雙11阿裡雲資料庫技術揭秘》系列幹貨文章,為你講述年度“技術大考”背後的故事,敬請關注!
前言
阿裡雲一站式線上資料管理平台DMS,從最早的服務于集團内部業務的各個工具型産品,經曆了阿裡集團資料庫各個時期的技術及架構演進、曆年雙十一的大促考驗、雲原生轉型,演進到今天以統一的雲架構,向阿裡集團内部以及外部雲客戶提供一站式的資料管理服務,産品不斷的拓展邊界,提升技術深度,将阿裡集團超大規模資料的管理方法,推向和服務于所有開發者。

關鍵元件
資料管理DMS: 作為資料庫團隊2009年上線給研發同學使用的一站式資料庫開發平台,為集團、螞蟻以及公有雲客戶提供資料庫實時通路、資料庫研發規範落地、資料安全管理以及安全生産等能力。同時結合資料庫備份DBS能力為使用者提供一站式公共雲,混合雲,線下自建資料庫備份,除了穩定的備份恢複外,在2019年釋出了雲原生CDM(Cloud Data Management)能力,實作備份資料秒級恢複,支撐了金融、教育、遊戲等廣泛的客戶業務場景。
資料備份DBS:是資料庫團隊2017年釋出的資料庫備份産品,為使用者提供一站式公共雲,混合雲,線下自建資料庫穩定的備份服務,同時在2019年release了阿裡雲第一款雲原生CDM産品,利用雲的特性幫助客戶資料秒級恢複,秒級恢複産品已經支撐了教育,遊戲,等重要客戶場景。
資料傳輸DTS:(Data Transmission Service,簡稱DTS),從2011開始支撐阿裡集團容災到異地多活到阿裡雲官網上雲,于2015年4月命名為DTS完成産品化,是全球第一個公有雲資料傳輸産品,融合了阿裡集團的性能和業務特點與公有雲的資料源多樣性。集資料遷移、訂閱及實時同步功能于一體,能夠解決公共雲、混合雲場景下,遠距離、秒級異步資料傳輸難題。其底層基礎設施采用阿裡雙11異地多活架構,為數千下遊應用提供實時資料流,已線上上穩定運作6年之久。DTS支援關系型資料庫、NoSQL、大資料(OLAP)等資料源,在傳統商業資料庫遷移尤其是Oracle、DB2 大機&小機系列等商業資料庫具備相容評估轉換和實時同步能力。
DMS 總述
DMS : 結合資料管理、資料備份、資料傳輸的技術沉澱,統一打造為全新DMS産品,為使用者提供一站式的全域資料資産管理、資料庫設計開發、資料內建與開發的全鍊路能力,在2021雙十一期間,為集團使用者提供全方位的資料資産管理服務。
業務挑戰
- 部分業務由于曆史資料堆積,使得存儲水位過高、表越來越大RT上升,面對這類問題DMS提供了曆史資料清理的功能,能夠讓業務無感的進行曆史資料的删除清理,部分場景在清理完成後碎片率大增,存儲回收效果一般,面對這種情況,研發需要自行選擇一個時間做優化表操作,操作審批繁瑣,如何簡化操作降低存儲水位變成了一個業務側迫切希望解決的問題。
- 在資料庫的變更中,DDL的變更是風險較高的一個操作,特别在分庫分表的場景下如何控制DDL變更風險是業務同學對DMS提出的問題。
- 資料訂閱作為衆多中台産品的上遊,提供了諸如應用緩存失效、廣告推送、搜尋推薦以及雙十一獨有的GMV大屏等業務場景的功能基礎,今年新引入的庫倉一體化架構OLTP到OLAP能力,為手淘交易訂單搜尋功能帶來的能力提升和使用者體驗大幅優化
- 手淘訂單搜尋,使用者訂單搜尋命中率低,使用者可能隻記得商品名的模糊資訊和商品店鋪的資訊,老鍊路的訂單搜尋隻能根據查詢關鍵字在資料庫進行like比對,如果輸入的關鍵詞不準确可能搜不到訂單;如果搜尋詞過短,使用者查找訂單時間長,使用者為了增大命中率,會輸入較短的關鍵詞,這樣查詢的訂單數量過多,同時搜尋的結果又沒有分類,使用者要在搜尋結果中找目标訂單,隻能滑動下一頁,查尋時間長,隻能在雙十一大促期間進行功能降級。
- 2021年雙11大促,首次所有集團資料庫100%上雲,海量執行個體同時部署在中心站,集團作為VIP客戶和公有雲客戶同region部署,這樣會使得備份存儲的流量壓力非常大,如果沒有相關的技術方案,會導緻集團上雲和公有雲客戶互相影響,而增量備份又是這裡面的核心問題,當備份存儲流量壓力非常大的時候,增量資料堆積會導緻客戶日志磁盤空間打滿導緻執行個體RO,以及無法恢複到任意時間點。
技術更新
無鎖資料變更、無鎖表優化
通常在曆史資料删除場景下,delete語句會攜帶時間等條件,而時間條件并不一定存在索引,會導緻删除速度極慢,且占用資料鎖;同時如果删除資料量較大,會受binlog事務大小限制導緻失敗。
DMS通過将大事務轉化為小事務的方式,控制執行時間、控制事務影響行數,通過優化後400GB的表删除一千萬條資料約40g,緩慢删除占用時長5個小時,0條慢SQL。
通過無鎖資料變更完成對超大表的曆史資料清理之後,再通過DMS的無鎖變更技術,重新對表資料做一次搬遷,達到優化表空間的目的。
DDL灰階變更
業務同學在對資料表進行結構變更時,通常DDL是一個整體事務,一旦出現問題整張表不可通路。而在分庫分表場景下,在邏輯表次元上的業務被拆分為了多份,如果仍然整體進行變更,将不會發揮分庫分表在變更上的優勢。
利用這些分片來降低變更風險進行灰階是一個比較好的選擇,通過灰階政策控制,定義分庫分表的灰階政策為單表級别灰階、單庫下灰階、單執行個體下灰階三種方式。有了灰階,使用者結構變更更加淡定。
高效資料備份
大促峰值日志備份PITR能力不降級,DMS對集團XDB産生Binlog的資料進行了壓縮裁剪,同時結合集團XDB多副本節點的日志特性做到隻備一份日志的能力。
流量分流:DMS對XDB的日志進行實時備份,在内部加了流量規則,可以将部分XDB Cluster的執行個體備份到其他存儲上,達到分流的作用。
少流量産生:DMS對XDB産生的binlog資料進行了壓縮裁剪,隻備份了XDB leader上面的資料,由于XDB leader&follower上binlog完全一緻,是以在異常恢複流程,隻要找到對應的binlog斷開的位置,銜接上follower的日志即可。
流量隔離:考慮到集團上雲客戶和公有雲客戶在備份流量和數量上的互相影響,是以對集團上雲全量/增量,公有雲其他客戶全量/增量,進行了bucket隔離,同時對全量bucket進行了業務流量預測的限流,保證了公有雲客戶&集團上雲客戶增量有較大的上限,不至于流量不夠導緻無法滿足秒級RPO。
0點峰值表現:第一次實作了雙十一大促日志備份不中斷,保障了秒級RPO,集團峰值流量日志寫入備份存儲流量和總流量達到了數百Gb/s,保證了實時寫入RPO。
庫倉一體技術架構
之前是通過資料庫T+1到資料倉庫再回流到資料庫展示相應的計算結果,鍊路較長,維護使用成本高,資料延遲大,高峰期對源庫影響大,往年的大促過程淘寶的曆史訂單搜尋功能是限流使用的。
今年通過DMS+ADB一鍵實作的庫倉一體化架構實作了實時的資料擷取、實時傳輸與加工、實時查詢與展現,實作了全實時支援多元資料分析場景的交易訂單搜尋能力,0點峰值DMS寫ADB在RPS百萬級别的流量下全程毫秒級延遲,ADB實時查詢結果毫秒級傳回。經過庫倉一體技術架構更新後,手淘訂單搜尋增加了“猜你想搜” 和 “類目搜尋”的能力:
- 猜你想搜:根據搜尋詞推薦聯想詞和店鋪名,使用者可以點選聯想詞和店鋪名進行搜尋,增加使用者搜尋的命中率;
- 類目搜尋:增加了按店鋪名進行搜尋的功能,使得使用者搜尋得到的訂單清單按類目進行分類,使用者訂單根據tab頁分類,減少每個tab的下拉數量。
最終通過庫倉一體架構,解決了過去大促功能降級給使用者帶來的使用影響,在本次雙十一過程中的功能完全開放使用。
庫存業務
基于阿裡巴巴單元化架構的基礎,使用者購買商品時下單流量會被分流到各單元。DMS資料實時同步能力保障了各單元間資料庫中資料的實時一緻,同時DMS提供的資料實時訂閱功能是庫存應用基于資料庫變化實時更新緩存服務的功能基礎。這些能力保證了使用者在用戶端的下單流程中對于剩餘庫存所見即所得,提升了整個購物體驗。
DMS在庫存業務百萬級别RPS的流量壓力下,保證了全鍊路高效穩定。
交易&GMV大屏
在交易業務上,DMS為面向社會的GMV媒體大屏和面向内部高管的大屏提供最上層實時資料消費的能力。鍊路上的問題會直接影響到大屏上的資料準确性,為了保障穩定性,DMS在交易鍊路上采用了全鍊路主備服務的雙活架構,最終在交易峰值百萬級别RPS的流量下保障了GMV全鍊路高可用。
DMS支撐大促小結
DMS在2021天貓雙十一期間:
- 用資料脫敏方式保護了近50萬次敏感資料的動态實時通路和靜态通路,首次上線的精細封網管控,使得安全生産效率提升50%,有效攔截大查詢千餘次,攔截DDL變更百餘次。
- 支撐了100%集團上雲執行個體恢複秒級RPO的功能,引入技術方案将流量帶寬占用降低了50%,首次支援使用非OSS存儲分擔大促峰值流量,保證了峰值流量增量備份不降級,全面保障了集團上雲核心交易場景可以随時将資料恢複到任意時間點,提升了整個雙11的穩定性。
- 全網同步鍊路上萬條,訂閱任務幾十萬個,大促0點流量峰值期間,數分鐘内累計從源庫拉取PB級日志資料,累計向目标庫寫入上千億條事務,期間全網任務無中斷,核心任務無延遲。