1. 程式人生 > 其它 >大促來臨,你的資料庫系統準備好了嗎?

大促來臨,你的資料庫系統準備好了嗎?

雲端計算的飛速發展,促使各行各業加快數字化轉型的步伐。資料庫作為資訊系統核心服務,在雲化的浪潮中,逐漸發展出雲資料庫的技術路線,並在不斷迭代創新中。

資料庫產品形態演進

縱觀資料庫行業發展歷程,從早期的單機MySQL到近年來分散式資料庫、NoSQL系列,資料庫始終秉承著一個理念——把簡單留給使用者,把複雜留給資料庫。

1.    單機

早期,為了彌補單機MySQL的擴充套件性,使用者要在業務層做分庫分表、讀寫分離。但隨著資料規模持續增長,使用者業務、運維負擔過重。

2.    分散式、NoSQL

隨後,分散式資料庫開始流行。這一代資料庫資料容量大,還能夠水平擴充套件,同時也提高了可用性。而NoSQL系列的出現,也讓業務設計更加靈活。例如,Redis的key-value資料結構,搭配內部的sorted set,非常適合搭建遊戲排行榜;MongoDB作為最流行的文件資料庫之一,能夠幫使用者便捷儲存json文字。

3.    雲原生、存算分離

伴隨使用者的業務需求複雜化,諸如“當訪問量小,但資料量巨大,加上核心資料不能丟。此時只是想增加些儲存空間”,傳統分散式架構便“不再完美”。

如今,我們已進入嶄新的雲原生時代。走在行業前沿的資料庫產品都在進行新一輪演進,擁有更強大、更靈活的全新架構——存算分離。

以企業級Redis——GaussDB(for Redis)為例,圖中展示存算分離的本質:資源解耦,按需使用。“計算不足擴節點、儲存不夠擴容量”,這種分層、彈性的擴容機制,也為使用者節省很多不必要的開銷。

此外,在完全相容Redis之餘,GaussDB(for Redis)也兼顧了輕量級場景——使用者可隨時下單8GB規格例項,使用低成本、穩定可靠的企業級Redis。

雲原生時代,華為雲GaussDB帶來的價值

雲原生時代下,客戶對資料庫提出了更高的要求,基於使用者常見的4大類業務痛點場景,華為雲GaussDB資料庫基於存算分離架構,給出了它的解法。

1.    資料庫秒級擴容

隨著企業規模擴張,更大的算力需求、更多的儲存容量需求是必然的。例如在遊戲開服、11.11大促搶購高峰期間,資料量爆發性增長,此時需要對資料庫進行擴容,而且在不少的業務場景下,擴容的速度甚至要求達到“使用者0感知“的級別。

而開源Redis由於資源以節點為單位,擴容只能計算、儲存一起擴,資源浪費是一方面,還不得不做資料跨節點拷貝,耗時長。而且不少使用者在擴容時,還可能面臨著時間無法評估的尷尬。

存算分離資料庫不僅擁有秒級擴容的優勢,還能滿足使用者“算力不足擴節點、容量不足擴容量”的要求,完全不必擔心資源“買多”問題。

2.    故障秒級恢復

單機資料庫一旦宕機,全量資料不可用,只能等待資料庫重啟,導致業務受損嚴重。傳統分散式資料庫一旦部分資料分片故障,會導致一段時間內部分資料無法訪問,依然對業務產生不小影響。

存算分離資料庫能夠解決極端場景下的資料可用性問題。由於儲存池有“共享”的性質,當部分計算層節點故障時,其他健康節點可以立刻接管“本不屬於自己”的資料,讓業務只感受到秒級抖動,即可繼續訪問全量資料,不必等待故障節點的“復活”。

3.   多執行緒設計,寫入能力強大

業務高峰是每一個企業關注的關鍵場景之一。開源Redis叢集雖然比簡單的主+備更能應付併發訪問,但面對大量寫入,依然會力不從心。一是因為它的節點是單執行緒做命令處理的工作,容易發生請求阻塞。二是由於備節點只讀,因此它的叢集中僅半數節點可寫,抗寫能力不足。

GaussDB(for Redis)抗寫能力極強,能從容應對企業最關心的業務高峰。首先,它採用了多執行緒做命令處理的設計,單點不易發生請求阻塞。其次,在存算分離的架構優勢下,例項中並不存在主備關係,全部節點都可寫,吞吐能力強。

4.   成本大幅降低

分散式儲存池將儲存以細粒度提供給使用者,相比一塊塊獨立硬碟低效率使用,GaussDB儲存池成本會極大降低。另外,相比開源Redis純記憶體設計,GaussDB(for Redis)全量資料下沉到儲存池中,從根本上解決了純記憶體硬體價格昂貴問題。

華為雲資料庫特惠活動:https://activity.huaweicloud.com/dbs_Promotion/index.html

本文由華為雲釋出。