全部產品
Search
文件中心

PolarDB:多主叢集(庫表)概述

更新時間:Jul 06, 2024

本文將詳細介紹多主叢集(庫表)的相關資訊。

隨著PolarDB MySQL版客戶的不斷增加,大規模頭部客戶不斷湧入,部分頭部客戶業務體量規模龐大,使得目前PolarDB MySQL版的單寫(一寫多讀)架構在特定情境下,寫效能出現瓶頸。

PolarDB MySQL版推出多主叢集,即在一個叢集中通過多個主節點來實現從一寫多讀架構到多寫多讀架構的升級,主要面向SaaS多租戶、遊戲、電商等高並發讀寫的應用情境。

多主叢集(庫表)的架構圖如下:多主架構

叢集中所有的資料檔案都存放在共用儲存(PolarStore)中,各個RW節點通過Distributed File System(PolarFileSystem)共用底層儲存(PolarStore)中的資料檔案。使用者可以通過叢集地址訪問整個叢集,資料庫代理會自動轉寄SQL命令到正確的RW節點。

核心優勢和能力

  • 秒級橫向寫擴充

    支援不同庫/表在不同計算節點並發寫入,最多支援在32個節點同時寫入資料。不同資料庫可以在不同計算節點秒級動態調度,極大提升整體的並發讀寫能力。

  • 多主互備(省去備節點)

    如果某個主節點發生故障,可秒級切換到其他低流量主節點,同時由於沒有額外的用於熱備的閑置資源,成本降低一半。

適用情境

多主叢集(庫表)主要面向SaaS多租戶、遊戲、電商等高並發讀寫的應用情境。

  • SaaS多租戶情境:滿足高並發效能需求,實現租戶間負載平衡

    情境特點:租戶的資料庫數量變化較快,負載變化較大,需要經常在不同的執行個體之間調配資料庫資源,以便達到最佳使用者體驗。

    解決方案:多主叢集(庫表)可協助客戶秒級將租戶的資料庫在不同RW節點間進行切換,或秒級增加新的RW節點承擔突發流量,從而實現負載平衡。

  • 世界服遊戲及電商情境:分鐘級的擴縮容,適應快速增長的業務請求

    情境特點:世界服遊戲及電商情境,一般採用基於中介軟體或者業務的分庫分表情境方案。在版本更新和大促的時候往往需要快速的彈性擴容數倍的叢集容量,在活動和大促結束後又需要快速縮容。然而,傳統叢集的擴縮容都需要遷移資料,非常複雜。

    解決方案:多主叢集(庫表)的秒級橫向擴充和透明路由功能,結合中介軟體或業務分庫分表可以實現透明的秒級擴充,將原來數天的擴容變為分鐘級。

  • 分服遊戲情境:更好的效能和擴充能力,靈活擴縮容

    情境特點:在遊戲成長期,資料庫負載較大,且呈現為不斷增長的趨勢特點。通常表現為在遊戲成長期期間,會不斷增加資料庫,導致RW節點負荷也不斷增加。而在遊戲衰退期,資料庫負載逐漸減少,資料庫會不斷合并,導致RW節點的負荷也呈減少趨勢。

    解決方案:遊戲成長期,可快速將部分資料庫切換到新的RW節點,實現負載平衡;遊戲衰退期,可快速將資料庫彙總到少量RW節點,快速降低運作成本。

效能提升情況

經測試,隨著叢集中的資料庫切換至更多的主節點(RW)上,叢集整體並發讀寫能力幾乎呈線性提升。測試樣本如下:

  • 測試背景:叢集包含8個資料庫,8個RW節點。

  • 測試過程:初始情況下,8個資料庫全部負載在其中一個RW節點上,然後對所有資料庫同步執行相同的壓力測試。壓測期間,將8個資料庫分別平均切換到2個RW節點、4個RW節點、8個RW節點上,觀察叢集整體的效能變化趨勢。

  • 效能變化趨勢如下,以QPS為例:效能提升

從上圖可以看出,隨著資料庫切換至更多的RW上時,叢集整體並發讀寫能力得到了極大的提升,幾乎呈現為線性提升。

支援的核心版本

目前僅PolarDB MySQL版8.0核心版本支援多主叢集(庫表)

節點規格與定價

多主叢集(庫表)支援獨享規格通用規格。更多詳情,請參見企業版計算節點規格

關於多主叢集(庫表)的計費詳情,請參見產品計費

如何使用

具體使用方法,請參見使用說明