資料庫一直是應用開發中最重要的環節之一,目前業界有為數眾多且不同類型的資料庫,因應用戶多樣的儲存、查詢、分析和管理資料需求。隨著運算需求逐漸提高,傳統資料庫系統架構也面臨諸多挑戰,包括易用性、擴增性限制、更新迭代頻率與成本等等。
全球知名諮詢公司Gartner指出,2022年,將有75%的資料庫將被部署或遷移至雲平台,只有25%的資料庫會考慮部署在本地,顯示雲端運算已成為企業的發展基石。隨著公有雲基礎設施日趨完善,「雲原生資料庫」的出現即能一一化解前述技術困境,也因此成為企業面對日新月異的大量運算、儲存、突發流量等需求時的最佳選擇。
去年11月,由阿里巴巴集團舉辦的全球最大型的網路購物活動「天貓雙11全球狂歡季」中,阿里雲雲原生關聯式資料庫PolarDB、雲原生資料倉庫AnalyticDB、雲原生多模資料庫Lindorm等,皆扮演支撐天貓雙11核心交易鏈路的關鍵角色。其中,AnalyticDB從核心交易鏈路的高併發線上檢索到複雜即時分析應用場景,支持阿里巴巴集團內幾乎所有業務部門。Lindorm則是第九次參與天貓雙11,全面支撐了淘寶、天貓、菜鳥等業務的結構化與半結構化資料存儲需求,更是目前為止阿里巴巴集團內部資料體量最大、覆蓋業務最廣的資料庫產品。
由阿里巴巴集團數位技術與智能骨幹業務阿里雲自主研發的 「雲原生關聯式資料庫PolarDB」,則在去年天貓雙11中,刷新了2019年創造的資料庫處理峰值(TPS)紀錄,並透過全面雲原生化,使資源效率成本相比過去4年下降80%、研發運維效率平均增加超過10%、規模化應用交付效率提升一倍。由於本次天貓雙11對PolarDB在性能和功能上提出了更高的要求,因此,PolarDB經過多項優化措施,提升併發性能、跨域、彈性以及可用性,以應對天貓雙11的巨量資料處理需求。
阿里巴巴集團副總裁,阿里雲智能數據庫產品事業部負責人李飛飛表示:「雲計算正在推動資料庫向雲原生快速演進,以雲原生分佈式的技術為基礎的下一代數據處理系統正成爲業界趨勢。阿里雲資料庫深耕11年,已具備豐富的應對大流量經驗,並已全面佈局雲原生。阿里雲原生資料庫PolarDB、雲原生資料倉庫AnalyticDB,不僅支持了雙11,更在疫情期間服務了各行各業,尤其是線上教育、遊戲等傳統的線上線下邊界越來越模糊的行業。」
性能優化
類似天貓雙11這類大型電商促銷活動中,性能始終是資料庫最關鍵的指標。舉例來說,11月11日凌晨0點一到,天貓的核心交易鏈路資料庫即會產生大量的資料讀寫需求,這樣的資料處理需求也隨著每一年的交易峰值增長而逐年上升。對此,PolarDB 針對索引結構、I/O子系統、鎖系統以及事務系統進行重點優化,以提升併發性能。
全球資料庫技術
此外,天貓雙11也涵蓋阿里巴巴旗下如速賣通(AliExpress)等平台跨國、跨洲促銷活動,因此,對於資料庫的異地可讀與資料同步有非常高的要求。PolarDB全球資料庫(PolarDB Global Database)採用了資料庫物理日誌非同步複製的方案,透過高併發流水線技術將資料同步速度提升7倍,並將資料跨大洲讀寫同步延遲控制在2秒內。
熱緩存技術
天貓雙11期間,資料庫長期處於高負荷的狀態,難免會出現單一節點故障的狀況。以往單一節點故障需經歷相當長的恢復時間,完成重啟後也需要緩存預熱後才能達到最佳性能。PolarDB今年在儲存運送分離架構上,透過將記憶體緩衝集區從計算節點剝離,讓計算節點狀態最小化,重啟後便可以快速恢復到重啟前的狀態,以減少緩存預熱的所需時間。在一般的讀寫負載下,重啟後的資料庫最大吞吐下降到原來的5%以下,並需要在200秒後逐漸恢復正常水準,而利用了熱緩存技術的實例中,幾乎沒有性能下降的案例出現。
跨AZ容災能力
為應對天貓雙11核心業務須跨AZ(Availability Zone,可用性區域)容災的需求,PolarDB 在儲存層(PolarStore)提供3副本的同時,透過自研的 X-Paxos 庫提供跨節點、跨機房、跨 AZ 級別的資料同步能力,達成復原點目標(Recovery Point Objective,RPO)等於0的容災解決方案。相對於RDS/MySQL的邏輯日誌複製災難恢復,PolarDB在節點切換時,受大事務或資料庫定義語言(Data Definition Language,DDL)的影響更小,復原時間目標(Recovery Time Objective,RTO)小於1分鐘。
並行查詢增強
在電商交易場景中,賣家亦需要頻繁、即時地查詢銷售資料與進行快速分析。PolarDB的查詢引擎能滿足即時查詢的需求,利用硬體多核優勢、基於所需資源(Cost)自動選擇並行查詢引擎,以提升查詢性能。今年,PolarDB的並行查詢新增加了眾多場景的覆蓋,包括聯合(Union)子查詢派生表(Derived Table)、用戶自訂臨時表、運算 (Count)、極限(Limit)、雜湊連線(Hash join)的並行優化,以及條件下推優化,減少資料匯總代價等
並行綱要(schema)變更
PolarDB承載了天貓雙11期間超大規模的資料,與此同時業務的需求依然是快速、即時、多變的,以往對這些大表進行DDL會持續數小時甚至數天,反而無法應對實際應用中的快速需求。隨著多核處理器的日益發展和高速儲存的普及,DDL的並行化可以取得非常好的效果。PolarDB可以對索引樹進行並行掃描、並行多路歸併的合併排序(Merge Sort)、並行的索引建立優化(Bulk Load)。在8核32G規格的實例中針對CPU密集型(CPU Bound)和I/O密集型的場景分別進行了測試,皆可達到6至13倍的速度提升。