天天看點

2017雙11技術揭秘—阿裡巴巴資料庫技術架構演進

作者:谌文濤(俞月)

每年電商雙11大促對阿裡技術人都是一次大考,對阿裡資料庫團隊更是如此。經過9年的發展,雙11單日交易額從2009年的0.5億一路攀升到2017年的1682億,秒級交易建立峰值達到了32.5萬筆/秒。支撐這一切業務名額的背後,是底層技術體系的一次次疊代更新。

2017雙11技術揭秘—阿裡巴巴資料庫技術架構演進

阿裡巴巴資料庫系統經曆了10多年的發展,今年正式确定從 第三代大規模分庫分表 向 第四代X-DB分布式資料庫系統 演進的目标。X-DB分布式資料庫的落地已經在2017年雙11大促中獲得了可行性驗證,同時底層開始引入存儲計算分離架構。分布式在系統穩定性、容災能力、容量擴充性、技術體系内聚性上有了質的提升,今年雙11開啟了阿裡資料庫技術架構新的篇章。

2017雙11技術揭秘—阿裡巴巴資料庫技術架構演進

本文以阿裡電商交易鍊路中的核心系統庫存中心為例,一窺阿裡集團資料資料庫的發展曆程。庫存中心資料庫叢集(簡稱庫存DB叢集),從2012年獨立拆分後,其發展可以概括為以下3個階段:

2012~2013年:分庫分表水準拆分,建構大規模資料庫叢集

2014~2016年:單元化異地多活架構,資料多單元間同步

2017年:X-DB 1.0分布式叢集部署上線,新的起點

作為阿裡資料庫體系中的核心系統,庫存DB叢集的發展曆程可以作為縮影,代表了阿裡巴巴資料庫體系的演進。

庫存DB叢集誕生于2012年,是業務垂直拆分的産物。庫存最早是商品中心資料庫的一個字段,随着淘寶業務的複雜化,單一字段已經滿足不了基于後端倉儲的庫存管理體系,是以便有了垂直拆分出來的庫存DB叢集。

2012~2017年,雙11交易額一步步的重新整理紀錄,庫存DB叢集的QPS/TPS也實作了幾十倍的增長。水準拆分的基本思路是把資料庫擴充到多個實體節點上,讓每個節點處理不同的讀寫請求,進而緩解單一資料庫的性能問題。

借助于資料庫團隊的DTS(Data Transmission Service)産品,庫存中心進行了大規模的水準拆分,分庫和分表數量擴充到最初的幾百倍,平穩的支撐了這一個階段業務的快速發展。與此同時,在熱點商品扣減、防超賣資料強一緻需求、跨城異地容災資料品質問題、業務資料量急劇膨脹、超大規模資料庫叢集運維等問題點上,迫切需要新一代架構來解決。

2014~2015年,為了進一步提升使用者的購物體驗,庫存DB叢集與主站交易鍊路一同做了單元化部署。單元化很大程度上解決了買家的使用體驗問題,在本單元内封閉完成讀寫操作。但是對于賣家次元的資料,比如編輯商品、扣減庫存,就會涉及到跨單元中心去寫。關于單元化架構,之前已經有了很多介紹。

有了多個單元,對于底層資料庫來說,面臨的最大挑戰就是資料同步,因為對于單元封閉的買家次元的資料,需要把單元的資料全部同步到中心;對于讀寫分離類型的業務,我們要把中心的資料同步到單元。這條資料通道就是依靠DRC(Data Replication Center)來完成。

如今,DRC不僅成為集團單元化鍊路的基礎設施,對應的雲産品DTS已經從2016年開始讓阿裡雲使用者、聚石塔商家低成本的搭建異地容災。單元化架構給庫存DB叢集帶來的最大挑戰是多單元間的資料強一緻問題,我們也為此做了很大的努力。

2017雙11技術揭秘—阿裡巴巴資料庫技術架構演進

2017年雙11,庫存DB叢集第一次使用X-DB 1.0分布式叢集部署,平穩的支援了32.5萬筆/秒的交易建立峰值。X-DB是阿裡巴巴自研高性能分布式可全球化部署資料庫,其核心技術目标概括為以下6點:

100%相容MySQL生态,應用無縫遷移

跨AZ、Region的全球化部署能力,5個9以上的可用率

自動化的資料Sharding,計算、存儲均可水準擴充

高性能的事務處理,相同硬體下達到MySQL 10倍的事務處理能力,百萬TPS

自動化的資料冷熱分離,存儲成本為MySQL的1/10

計算存儲分離,存儲按需擴充

庫存DB叢集雙十一部署架構:

2017雙11技術揭秘—阿裡巴巴資料庫技術架構演進

正是由于X-DB提供了全面相容MySQL、高性能、低成本、跨城容災、資料強一緻的能力。在2017年年初,資料庫團隊和業務研發團隊确定了在庫存中心部署X-DB 1.0的目标,解決業務目前面臨的痛點:

全面相容MySQL,實作業務系統平滑遷入

極緻性能,雙11單執行個體熱點扣減峰值TPS是去年的3倍

低成本,相比于傳統的單元化主備架構部署,減少2個資料副本以及單元間資料同步資源成本

跨城容災,借助Batching和Pipelining技術實作跨城強同步場景吞吐量幾乎無衰減

資料強一緻,借助Paxos協定提供多單元間資料強一緻能力;批量關閉中心叢集全部執行個體,叢集30秒内完成單元選主切換,資料零丢失

計算存儲分離,徹底解決傳統機型計算資源和存儲資源固定配比問題,搭配容器化技術,大促峰值期間将資料庫彈性部署運作在離線任務主機,落地零擴容成本支援雙十一大促

X-DB首次亮相在2017年雙11的舞台,平穩支撐零點峰值32.5萬筆/秒,開啟了阿裡資料庫體系從分庫分表時代向分布式叢集時代的大門。技術之路永無止境,我們今天的技術現狀離業務對我們的要求還有很大的差距。但是千裡之行,始于足下,借用《魔戒》裡的經典台詞:“There’s some good in this world, Mr. Frodo. And it’s worth fighting for.”