云計算的飛速發(fā)展,促使各行各業(yè)加快數(shù)字化轉(zhuǎn)型的步伐。數(shù)據(jù)庫作為信息系統(tǒng)核心服務(wù),在云化的浪潮中,逐漸發(fā)展出云數(shù)據(jù)庫的技術(shù)路線,不斷地迭代創(chuàng)新。
數(shù)據(jù)庫產(chǎn)品形態(tài)演進(jìn)
縱觀數(shù)據(jù)庫行業(yè)發(fā)展歷程,從早期的單機(jī)MySQL到近年來分布式數(shù)據(jù)庫、NoSQL系列,數(shù)據(jù)庫始終秉承著一個理念——把簡單留給用戶,把復(fù)雜留給數(shù)據(jù)庫。
1.單機(jī)
早期,為了彌補(bǔ)單機(jī)MySQL的擴(kuò)展性,用戶要在業(yè)務(wù)層做分庫分表、讀寫分離。但隨著數(shù)據(jù)規(guī)模持續(xù)增長,用戶業(yè)務(wù)、運(yùn)維負(fù)擔(dān)過重。
2.分布式、NoSQL
隨后,分布式數(shù)據(jù)庫開始流行。這一代數(shù)據(jù)庫數(shù)據(jù)容量大,還能夠水平擴(kuò)展,同時也提高了可用性。而NoSQL系列的出現(xiàn),也讓業(yè)務(wù)設(shè)計更加靈活。例如,Redis的key-value數(shù)據(jù)結(jié)構(gòu),搭配內(nèi)部的sorted set,非常適合搭建游戲排行榜;MongoDB作為最流行的文檔數(shù)據(jù)庫之一,能夠幫用戶便捷存儲json文本。
3.云原生、存算分離
伴隨用戶的業(yè)務(wù)需求復(fù)雜化,諸如“當(dāng)訪問量小,但數(shù)據(jù)量巨大,加上核心數(shù)據(jù)不能丟。此時只是想增加些存儲空間”,傳統(tǒng)分布式架構(gòu)便“不再完美”。
如今,我們已進(jìn)入嶄新的云原生時代。走在行業(yè)前沿的數(shù)據(jù)庫產(chǎn)品都在進(jìn)行新一輪演進(jìn),擁有更強(qiáng)大、更靈活的全新架構(gòu)——存算分離。
以企業(yè)級Redis——GaussDB(for Redis)為例,圖中展示存算分離的本質(zhì):資源解耦,按需使用。“計算不足擴(kuò)節(jié)點(diǎn)、存儲不夠擴(kuò)容量”,這種分層、彈性的擴(kuò)容機(jī)制,也為用戶節(jié)省很多不必要的開銷。
此外,在完全兼容Redis之余,GaussDB(for Redis)也兼顧了輕量級場景——用戶可隨時下單8GB規(guī)格實(shí)例,使用低成本、穩(wěn)定可靠的企業(yè)級Redis。
三、GaussDB云原生帶來的價值
基于用戶常見的 4 大類業(yè)務(wù)痛點(diǎn)場景,華為云GaussDB數(shù)據(jù)庫基于存算分離架構(gòu),給出了它的解法。
1.數(shù)據(jù)寫滿了急需擴(kuò)容
隨著企業(yè)規(guī)模擴(kuò)張,更大的算力需求、更多的存儲容量需求是必然的。例如在游戲開服、11. 11 大促搶購高峰期間,數(shù)據(jù)量爆發(fā)性增長,此時需要對數(shù)據(jù)庫進(jìn)行擴(kuò)容,而且在不少的業(yè)務(wù)場景下,擴(kuò)容的速度甚至要求達(dá)到“用戶 0 感知“的級別。
而開源Redis由于資源以節(jié)點(diǎn)為單位,擴(kuò)容只能計算、存儲一起擴(kuò),資源浪費(fèi)是一方面,還不得不做數(shù)據(jù)跨節(jié)點(diǎn)拷貝,耗時長。而且不少用戶在擴(kuò)容時,還可能面臨著時間無法評估的尷尬。
存算分離數(shù)據(jù)庫不僅擁有秒級擴(kuò)容的優(yōu)勢,還能滿足用戶“算力不足擴(kuò)節(jié)點(diǎn)、容量不足擴(kuò)容量”的要求,完全不必?fù)?dān)心資源“買多”問題。
2.節(jié)點(diǎn)宕機(jī)導(dǎo)致數(shù)據(jù)長時間不可用,業(yè)務(wù)受損
單機(jī)數(shù)據(jù)庫一旦宕機(jī),全量數(shù)據(jù)不可用,只能等待數(shù)據(jù)庫重啟,導(dǎo)致業(yè)務(wù)受損嚴(yán)重。傳統(tǒng)分布式數(shù)據(jù)庫一旦部分?jǐn)?shù)據(jù)分片故障,會導(dǎo)致一段時間內(nèi)部分?jǐn)?shù)據(jù)無法訪問,依然對業(yè)務(wù)產(chǎn)生不小影響。
存算分離數(shù)據(jù)庫能夠解決極端場景下的數(shù)據(jù)可用性問題。由于存儲池有“共享”的性質(zhì),當(dāng)部分計算層節(jié)點(diǎn)故障時,其他健康節(jié)點(diǎn)可以立刻接管“本不屬于自己”的數(shù)據(jù),讓業(yè)務(wù)只感受到秒級抖動,即可繼續(xù)訪問全量數(shù)據(jù),不必等待故障節(jié)點(diǎn)的“復(fù)活”。
3.高峰期間,數(shù)據(jù)庫寫入擁塞
業(yè)務(wù)高峰是每一個企業(yè)關(guān)注的關(guān)鍵場景之一。開源Redis集群雖然比簡單的主+備更能應(yīng)付并發(fā)訪問,但面對大量寫入,依然會力不從心。一是因?yàn)樗墓?jié)點(diǎn)是單線程做命令處理的工作,容易發(fā)生請求阻塞。二是由于備節(jié)點(diǎn)只讀,因此它的集群中僅半數(shù)節(jié)點(diǎn)可寫,抗寫能力不足。
GaussDB(for Redis)抗寫能力極強(qiáng),能從容應(yīng)對企業(yè)最關(guān)心的業(yè)務(wù)高峰。首先,它采用了多線程做命令處理的設(shè)計,單點(diǎn)不易發(fā)生請求阻塞。其次,在存算分離的架構(gòu)優(yōu)勢下,實(shí)例中并不存在主備關(guān)系,全部節(jié)點(diǎn)都可寫,吞吐能力強(qiáng)。
4.數(shù)據(jù)庫成本難降
分布式存儲池將存儲以細(xì)粒度提供給用戶,相比一塊塊獨(dú)立硬盤低效率使用,GaussDB存儲池成本會極大降低。另外,相比開源Redis純內(nèi)存設(shè)計,GaussDB(for Redis)全量數(shù)據(jù)下沉到存儲池中,從根本上解決了純內(nèi)存硬件價格昂貴問題。
11. 11 上云嘉年華之際,華為云數(shù)據(jù)庫給用戶提供低至0. 05 折的大幅折扣,包括: 7200 元上云大禮包,新用戶首購云數(shù)據(jù)庫MySQL、PostgreSQL等產(chǎn)品年付低至11. 11 元,GaussDB系列產(chǎn)品包年、包月 4 折,其中GaussDB(for Redis)小規(guī)格給出了19. 9 元/ 6 個月的驚喜優(yōu)惠。讓用戶在業(yè)務(wù)數(shù)字化轉(zhuǎn)型,數(shù)據(jù)上云之初,便能感受到一劑強(qiáng)心劑——“成本控制不是難題,穩(wěn)定可靠依然有保障”。
華為云雙 11 福利多多,如果不知道選哪款產(chǎn)品,可以來華為云創(chuàng)新中心咨詢,搜索“產(chǎn)業(yè)云”,登錄活動頁面,留下您的聯(lián)系方式,將有專業(yè)技術(shù)團(tuán)隊(duì)為您提供一對一的免費(fèi)咨詢服務(wù)。