GaussDB(for MySQL) Serverless集群,可根據客戶業務實時負載,集群資源秒級動態彈降,結合內核深度優化,在各種場景下做到對上層業務透明無感。 ...
本文分享自華為雲社區《GaussDB(for MySQL) Serverless全面商用:無感彈性,極致性價比》,作者: GaussDB 資料庫。
技術背景
對於現代企業級IT系統,資料庫往往是作為底座一般的存在,資料庫的穩定性、可靠性如果難以保障,整個系統的平穩運行將無從談起。出於如上考量,在部署資料庫資源時,客戶基本都會較保守地進行配置,包括但不限於計算、記憶體、存儲等多種資源及參數設置,通過一定程度的資源冗餘來保障業務高峰時資料庫的正常運行。
然而,在業務波谷期,冗餘配置的資料庫資源會大量閑置,成本空轉,而在面對預期外的激增業務壓力時,即使已經保守配置,資料庫資源也有可能出現短時間的不足情況,系統整體有受損風險。
除了以上典型的企業級用戶,雲上還存在大量低頻小規格的資料庫使用場景,如研發測試環境、小程式雲開發、學校的實驗教學環境等。這些場景中,用戶往往對資料庫規格要求不高,但也有一定業務連續性要求,不能通過不斷創、刪按需實例解決,即使購買較低配置的包周期實例,完全無負載的時間段稍長,仍顯得成本浪費問題嚴重。
針對這些客戶場景及痛點問題,Serverless資料庫無疑是很好的解決方案。資料庫集群資源將隨客戶業務負載動態彈性擴縮,需要時多用,不需要時少用甚至不用,真正做到了負載與資源動態匹配的按量付費模式,助力企業級用戶進一步降本增效,同時普惠萬千中小客戶,徹底打破雲資料庫的使用門檻。
特性價值
(1)業務無感的秒級彈性:面對負載突增或預期外壓力,縱向擴容秒級完成,業務無感知;支持橫向擴容,結合proxy負載均衡和高性能全局一致性能力,應用側可平滑享受彈出的只讀來分擔流量壓力,無需人工介入或業務改造。
(2)負載與資源動態匹配,極致性價比:資料庫實時性要求高,但使用需求不穩定,峰均比高的場景,或業務平常整體負載較低,但偶有大幅波動或預期外負載的場景。此類場景下,相比固定規格,serverless實例平均可降低使用成本超30%,特定情況甚至有80% +的成本降低。
實現原理
1. Buffer Pool快速彈性伸縮,降低伸縮過程對業務的影響
- 分階段採用多線程並行處理Buffer Pool伸縮中的頁面處理和多個哈希表重新映射。充分利用並行能力,減少Buffer Pool擴縮容時間。
- 針對擴縮容中涉及到的頁面和哈希表對應的記憶體,採用在臨界區外預申請和延後釋放等方式,縮短臨界區時間,減少對業務影響的時間。
- Buffer Pool Chunk的初始在臨界區外進行,並且在臨界區內採用O(1)時間複雜度的方式加入到空閑鏈表,縮短臨界區時間,減少擴容場景對業務影響的時間。
- 通過遍歷事務鏈表重構鎖記錄哈希表,避免重構鎖記錄哈希表時出現的大量無效遍歷,縮短重構鎖記錄哈希表的時間。
2. 高性能全局一致性,橫向拓展對業務平滑
GaussDB(for MySQL)提供基於內核層的高性能全局一致性服務,使得客戶在使用橫向拓展的serverless集群時,無需擔心彈出只讀與主節點的一致性問題,保證發往集群任意副本的讀請求都可以獲得強一致性的結果。
計算節點間通過高性能網路做LSN同步,當業務入口到Proxy層,Proxy會將讀請求發送到只讀節點,此時若讀節點發現LSN落後於主節點,會等待當前的LSN推進到主機最近的LSN位點後,再讀取最新數據返回,允許等待的超時時間和超時分發策略用戶可設置,真正做到滿足各個用戶實際場景的高性能全局一致性。
業務場景/流程
1. 購買Serverless實例
- 進入購買雲資料庫 GaussDB(for MySQL)頁面。
- 在“服務選型”頁面,計費模式選擇“Serverless”。
- 按需選擇算力範圍即可,如需橫向擴展能力,可在創建完成後設置只讀節點數量範圍。
2. 修改Serverless配置
購買Serverless實例後,可根據需要修改Serverless算力的最小值和最大值,包括設置集群中允許橫向拓展的只讀節點上限,當只讀節點已經縱向擴展到設定規格上限,集群中現有的只讀節點的CPU使用率或記憶體使用率仍然滿足縱向擴展的條件,則會自動觸發只讀節點的橫向擴展。
總結
GaussDB(for MySQL) Serverless集群,可根據客戶業務實時負載,集群資源秒級動態彈降,結合內核深度優化,在各種場景下做到對上層業務透明無感。針對負載峰均比高或負載不可預測的企業級客戶,Serverless實例自動彈性擴縮,節省資源浪費同時助力運維效率提升;針對個人開發者、學生實驗等中小客戶,Serverless實例具備極致性價比,真正將雲原生技術普惠萬千用戶。
附錄
- 本文作者:華為雲GaussDB(for MySQL)團隊
- 華為雲GaussDB(for MySQL)官方產品文檔:https://support.huaweicloud.com/gaussdbformysql/index.html