本文介紹了PolarDB MySQL版基於CXL(Compute Express Link)實現的計算-記憶體-儲存三層解耦合架構。該技術的核心創新已在SIGMOD 2025上發表的論文《Unlocking the Potential of CXL for Disaggregated Memory in Cloud-Native Databases》中榮獲Best Paper Award。PolarDB MySQL版通過PolarCXLMem分解記憶體系統,直接將高效能記憶體池串連到計算節點,支援秒級載入CXL記憶體,並將單節點記憶體的最大擴充提升至8 TB層級。在sysbench IO-Bound模型下,該架構的效能提升超過100%。同時,基於獨創的PolarRecv技術,結合CXL記憶體的持久化特性,能夠將資料庫的崩潰恢複效能提升超過40倍以上。此外,基於CXL的記憶體池化技術同樣適用於人工智慧訓練和推理情境。
CXL記憶體擴充功能目前處於灰階階段。如需使用該功能或對當前功能有任何疑問,請提交工單聯絡我們為您處理。
適用範圍
叢集版本:MySQL 8.0.2,且核心小版本8.0.2.2.31.1及以上。
工作原理
為解決傳統架構下記憶體資源擴容難與成本高的痛點,PolarDB MySQL版基於CXL 2.0技術,設計了創新的PolarCXLMem分解記憶體架構。該架構將CXL記憶體池作為DRAM記憶體的擴充,直接連接至計算節點,資料庫引擎可像訪問本地記憶體一樣,通過原生的Load/Store指令直接讀寫CXL記憶體中的資料。
與傳統的RDMA遠端記憶體方案相比,PolarCXLMem架構無需複雜的網路通訊協定棧和資料拷貝,避免了效能損耗和讀寫放大問題,真正實現了計算與記憶體的解耦,為您提供接近DRAM效能、更低成本和更高容量的記憶體選擇。

統一記憶體與無分層設計
與通過RDMA網路訪問遠端記憶體的PolarDB三層解耦(RDMA)方案不同,PolarCXLMem通過CXL.mem協議將CXL記憶體裝置直接映射到主機的物理地址空間。對於資料庫核心,DRAM和CXL記憶體共同組成一個統一、無分層的Buffer Pool。CPU通過原生的
Load/Store指令直接存取CXL記憶體,方式與訪問本地DRAM一致。這避免了在不同記憶體層級間進行頁面換入換出所帶來的效能開銷和讀寫放大問題。硬體級緩衝一致性
CXL.cache協議在硬體層面保證CPU緩衝與CXL記憶體之間的資料一致性,無需資料庫軟體進行額外的緩衝管理,從而簡化了架構並提升效率。
基於持久化記憶體的秒級恢複(PolarRecv)
PolarRecv技術利用了CXL記憶體的持久化特性。資料庫崩潰時,位於CXL持久化記憶體上的Buffer Pool資料無需通過重放Redo Log來恢複。通過PolarRecv技術,資料庫可直接載入CXL記憶體中的資料,實現秒級載入,將崩潰恢復(RTO)縮短至秒級。在特定測試情境下,恢複速度可提升40倍以上。
功能優勢
顯著降低成本:CXL記憶體的單位GB成本遠低於本地記憶體(DRAM),可將您的資料庫記憶體總成本降低30%~50%。同時,計算與記憶體資源可獨立Auto Scaling,按需付費,避免資源浪費。
突破容量限制:解決單台物理機記憶體插槽的限制,將單個計算節點的記憶體容量最高提升至8 TB,從而有效應對超巨量資料集的分析與查詢情境。
效能接近DRAM:在點查、混合讀、讀寫等多種OLTP負載情境下,增加CXL記憶體後的叢集效能有20%~112%的提升。同時,基於獨創的
PolarRecv技術和CXL記憶體持久化特性,資料庫崩潰恢複RTO可縮短40倍以上。
應用情境
記憶體密集型線上業務(OLTP):在社交、遊戲、電商等情境中,核心資料(使用者關係、商品資訊、即時訂單)需要常駐記憶體以保證低延遲訪問。使用CXL記憶體可以低成本地將更大的工作集緩衝於記憶體中,減少I/O開銷。
巨量資料量分析與報表(AP):對於需要對海量資料進行複雜查詢和即時分析的業務,CXL記憶體提供的大容量可以容納更多資料,加速查詢處理,避免因記憶體不足導致的頻繁磁碟讀取。
開發與測試環境:為開發與測試環境配置大記憶體規格時,CXL記憶體是一個高性價比的選擇,能以較低成本類比生產環境的大記憶體情境。
效能測試報告
以下效能資料源於特定測試環境,僅供參考。實際效能可能因叢集規格、工作負載、資料模式和參數配置等因素而異。
測試環境
叢集規格:8.0.2企業版,獨享規格8核 32 GB。
測試資料:40張表,每張表10,000,000行。
對比方案:
方案A(基準):8核 32 GB,總可用記憶體32 GB。
方案B(CXL擴充):8核 32 GB + 64 GB CXL記憶體,總可用記憶體96 GB。
該測試對比了在基礎規格上增加CXL記憶體所帶來的效能提升。此對比並未反映CXL記憶體與同等容量純DRAM規格之間的效能差異,其主要目的是驗證通過CXL擴充記憶體容量對資料庫輸送量的影響。
測試結果
增加64 GB CXL記憶體後,叢集的整體效能(QPS)最高提升112%。更大的Buffer Pool可以緩衝更多資料,從而減少磁碟I/O。
點查(oltp_point_select)
開啟CXL記憶體池後,效能提升50%~112%。
混合讀(oltp_read_only)
開啟CXL記憶體池後,效能提升30%~80%。
讀寫混合(oltp_read_write)
開啟CXL記憶體池後,效能提升20%~50%。