本文介紹了資料庫行業的發展及PolarDB-X的技術發展曆程。
行業趨勢
資料庫系統至關重要
資料庫與作業系統、中介軟體並稱為系統軟體的三駕馬車,是企業IT系統不可或缺的組件,也是互連網應用級公司資訊管理系統儲存資料和管理資料的核心平台。資料庫系統是一切應用軟體的資料處理及交換核心,是所有基礎軟體進行資料存放區、查詢、分析處理的中心。資料庫系統運行效能是否高效穩定、介面語言是否通用,直接決定了上層應用能否給使用者提供好的效能,同時直接影響開發人員效率。根據全球權威IT研究諮詢公司的資料,2017年全球企業基礎軟體市場規模1958.52億美金,其中資料庫市場規模388億美金,佔比近20%,是最大組成部分。
分散式資料庫是發展方向
近年來,隨著互連網、巨量資料的飛速發展,特別是“雙十一”指數型的成交總額發展曲線,讓世界看到了中國電子商務業務的火箭式發展勢頭。而同時,對於背後的業務支撐系統來說,同樣經歷了火箭式的系統壓力增長。以“雙十一”為例,除了直接面向使用者的電商網站系統,還有背後各相關物流公司的物流系統,各相關銀行的支付系統, 各賣家的倉儲系統等等。
隨著普惠金融、數字金融的快速推進,資料能力也已經成為金融機構在新時代提升業務能力的重要抓手。與此同時,移動互連網和電子支付業務的蓬勃發展,給金融行業的典型應用情境,如核心賬戶與賬務交易、線上支付/移動支付交易業務、即時交易監控與指標分析等,帶來新資料形態下的金融系統能力需求。
傳統的銀行支付系統通常採用所謂的“IOE”結構,即IBM的大型主機或小型機、Oracle的資料庫、EMC的存放裝置,這套系統仍存在成本巨大且與服務提供者嚴重捆綁的隱患。隨著移動互連網的快速發展以及電子支付的興起,對於銀行核心支付系統來說是爆炸式的業務增速。傳統的“IOE”系統為集中式系統,但是隨著“摩爾定律”的逐漸失效,單台伺服器上的效能極限已經慢慢顯露,在這種情況下,技術人員逐漸開始探索將原有的集中式系統改造為分布式系統,通過多台中低端伺服器的水平擴充方式替換一台高效能伺服器垂直擴充方式,同時完成降低成本、增長效能的目的。在這種需求下,大規模分散式交易型資料庫成為解決分布式系統資料存放區、管理的主要方向。
PolarDB-X技術發展
產品前言
PolarDB-X是由阿里巴巴自主研發的雲原生分散式資料庫,融合分布式SQL引擎DRDS與分布式自研儲存X-DB,雲端式原生一體化架構設計,可支撐千萬級並發規模及百PB級海量儲存。專註解決海量資料存放區、超高並發吞吐、大表瓶頸以及複雜計算效率等資料庫瓶頸問題,曆經各屆天貓雙十一及阿里雲各行業客戶業務的考驗,助力企業加速完成業務數字化轉型。
PolarDB-X核心能力通過標準關係型資料庫技術實現,配合完善的管控營運及產品化能力,使其具備穩定可靠、高度可擴充、持續可營運、類傳統單機MySQL資料庫體驗的特點。
PolarDB-X在公用雲和專有雲環境沉澱打磨多年,曆經各屆天貓雙十一核心交易業務及各行業阿里雲客戶業務的考驗。承載大量使用者核心線上業務,橫跨互連網、金融支付、教育、通訊、公用事業等行業,是阿里巴巴集團內部所有線上核心業務及眾多阿里雲客戶業務接入分散式資料庫的事實標準。
發展曆程
2003年,淘寶網成立之初,採用經典的LAMP架構(Linux-Apache-MySQL-PHP)。隨著使用者量迅速增長,單機MySQL資料庫很快便無法滿足資料存放區需求。之後,淘寶網進行了架構升級,資料庫改用Oracle。隨著使用者量的繼續快速增長,Oracle資料庫也開始成批的增加,即使這樣,仍然無法滿足業務對資料庫擴充性的訴求。因此,阿里巴巴內部在2009年時發起了著名的去IOE運動,PolarDB-X也開啟了自己的演化之路。
TDDL
去IOE的關鍵一環是實現對Oracle的替換。當時淘寶的業務體量已很難用成熟的技術產品支撐,為了避免以後出現技術瓶頸,技術的自力更生和自主可控成為一個核心訴求。一方面,隨著x86技術日趨成熟,穩定性與小型機的差距不斷縮小,另一方面,MySQL採用輕量化執行緒模式並具備高並發的支援能力,其生態逐步完善,因此新方案採用了基於Sharding技術+開源MySQL的分布式架構(TDDL+ AliSQL ),這代產品的特徵是以解決擴充性為目標、面向系統架構使用,尚不具備產品化能力。
DRDS
隨著TDDL時代架構的逐漸成熟,2014年開始,基於阿里雲,資料庫的發展走上了雲資料庫之路。作為分庫分表技術的開創者,我們推出了DRDS+RDS的分布式雲資料庫服務。這代產品的特徵是採用Share-Nothing架構,以解決儲存擴充性為出發點,提供面向使用者的產品化交付能力。
PolarDB-X 1.0
針對分庫分表使用中的痛點,我們不斷進行產品能力迭代,陸續支援了分散式交易、全域二級索引、非同步DDL等核心特性,持續改進SQL相容性,實現子查詢展開、Join下推等複雜最佳化,並開發了平滑擴容、一致性備份恢複、SQL閃回、SQL審計等營運能力。這期間,我們不斷擴充 Sharding 技術的能力邊界,探尋它的能力上限。這個探索的過程,一方面使我們的計算層能力更加穩定、豐富和標準化,另一方面也促使著DRDS從中介軟體到分散式資料庫的蛻變。2019年PolarDB-X全新產品線發布,成為一個新的裡程碑。
PolarDB-X 2.0
2018年開始,我們逐漸觸碰到了計算層的能力邊界,比如無法提供RR隔離等級的事務能力、計算下推受限於SQL表達能力、資料查詢的傳輸效率低下、多副本的線性一致性不可控等,這些問題像一個無法穿透的屏障,但我們能看到屏障的對面是什麼,能看到所有障礙都指向了同一個方向:計算層需要與儲存層深度融合。
慶幸的是,我們的AliSQL分支從誕生起就沒有停止前進的步伐。通過集團業務多年的技術錘鍊,基於AliSQL演化而來的X-DB資料庫(包括X-Paxos協議庫、X-Engine儲存引擎等),在三副本、低成本儲存等技術有了非常好的沉澱。
與此同時,雲端式原生架構理念的PolarDB,通過引入RDMA網路最佳化儲存計算分離架構,實現了一寫多讀的能力,並提供資源集區化,降低使用者成本;具備最佳化並提供秒級備份恢複、秒級彈性等能力,成為公用雲端增速最快的資料庫產品。
基於這些技術探索和沉澱,我們開始思考雲端式架構的分散式資料庫應該是什麼樣的形態。
從使用者角度來看,需要滿足使用者使用雲的一些期望,比如使用者的資料庫資料永遠不會丟,即使主機異常宕機,這裡需要有資料強一致以及高可用容災等能力;比如隨著移動互連網和IoT的普及,資料層面會有爆炸式的增長,以及疫情之後有更多的企業會關注IT成本,因此高效能、低成本和可擴充的計算和儲存能力也成為普適性訴求;另外,按查詢付費的彈效能力,也是市場的一個訴求。
因此,下一代的分散式資料庫需要具備:金融級高可用和容災、水平擴充、低成本儲存、按需彈性、透明分布式、HTAP混合負載、融合新硬體等特性。
2021年,我們完成原DRDS SQL引擎和X-DB資料庫儲存技術的融合,並結合PolarDB的雲原生特性,承上啟下推出了新一代的雲原生分散式資料庫,就此開啟了PolarDB-X 2.0時代。該時代的產品專註解決單機解決不好的分布式擴充性問題,滿足分布式資料一致性要求,並支援從單機到分布式的平滑演化,利用雲原生技術的優勢提供低成本和彈效能力,在交付上具備線上公用雲端、線下專有雲、輕量化等全形態輸出。