騰訊云李志陽(yáng):深入解讀無(wú)服務(wù)器架構(gòu)下的數(shù)據(jù)庫(kù)

來(lái)源: 百家號(hào)
作者:分布式云社區(qū)
時(shí)間:2021-04-14
16729
在4月7日下午舉辦的分布式數(shù)據(jù)論壇上,騰訊云數(shù)據(jù)庫(kù)專家工程師李志陽(yáng)發(fā)表了題為《分布式數(shù)據(jù)庫(kù)serverless化:深入解讀無(wú)服務(wù)器架構(gòu)下的數(shù)據(jù)庫(kù)》的主題演講。

備受關(guān)注的Distributed Cloud|2021全球分布式云大會(huì)·北京站于4月7日隆重召開(kāi),分布式云是2021年全球十大重要戰(zhàn)略科技趨勢(shì),利用分布式架構(gòu)技術(shù)創(chuàng)新,連接邊緣節(jié)點(diǎn)、私有云和公有云的IT資源組成分布式混合云。

全球分布式云聯(lián)盟力求打造分布式云計(jì)算旗艦級(jí)技術(shù)盛會(huì),本次大會(huì)共設(shè)有分布式云報(bào)告會(huì)、邊緣計(jì)算論壇、Serverless云原生論壇、分布式數(shù)據(jù)庫(kù)論壇、分布式存儲(chǔ)論壇,跨境SD-WAN咨詢會(huì)等六大論壇,圍繞分布式云、分布式算力、Serverless、云原生、HTAP、IPFS等技術(shù)與實(shí)踐展開(kāi)。聯(lián)合阿里云、騰訊云、百度云、金山云等全棧技術(shù)引領(lǐng)者與全球分布式云聯(lián)盟攜手打造這場(chǎng)技術(shù)饕餮盛宴。

在4月7日下午舉辦的分布式數(shù)據(jù)論壇上,騰訊云數(shù)據(jù)庫(kù)專家工程師李志陽(yáng)發(fā)表了題為《分布式數(shù)據(jù)庫(kù)serverless化:深入解讀無(wú)服務(wù)器架構(gòu)下的數(shù)據(jù)庫(kù)》的主題演講。

adaf2edda3cc7cd93d9572afc76a7937b90e9184.jpg

01 Serverless數(shù)據(jù)庫(kù)特點(diǎn)

隨著業(yè)務(wù)專注度的提升,服務(wù)的抽象程度也在提高。李志陽(yáng)舉了一個(gè)汽車服務(wù)的例子,以前為了出行只能購(gòu)買汽車,現(xiàn)在可以使用打車服務(wù),只需知道目的地即可,不再關(guān)注開(kāi)車和保養(yǎng),核心訴求得到了更好的滿足。

計(jì)算服務(wù)的演進(jìn)也是類似,從前自建機(jī)房,需要維護(hù)機(jī)房設(shè)備;后來(lái)可以在云上直接購(gòu)買虛擬機(jī),部署業(yè)務(wù),負(fù)責(zé)服務(wù)的擴(kuò)縮容;現(xiàn)在的函數(shù)計(jì)算,從CI/CD到服務(wù)部署,擴(kuò)縮容,全部自動(dòng)完成,客戶可以更專注于業(yè)務(wù)代碼。

狹義的serverless分為FaaS和BaaS,基本特點(diǎn)是無(wú)需運(yùn)維、以API方式提供服務(wù)、按實(shí)際使用計(jì)費(fèi)、無(wú)使用無(wú)費(fèi)用等。

舉個(gè)例子,用戶瀏覽網(wǎng)頁(yè),可能涉及CDN資源。如果是靜態(tài)內(nèi)容,從對(duì)象存儲(chǔ)下載照片、視頻;如果是動(dòng)態(tài)內(nèi)容,則觸發(fā)一個(gè)函數(shù)計(jì)算,云函數(shù)將從云數(shù)據(jù)庫(kù)獲取相應(yīng)的資源,生成用戶所需的動(dòng)態(tài)內(nèi)容。其中,云函數(shù)為FaaS,對(duì)象存儲(chǔ)和云數(shù)據(jù)庫(kù)則為BaaS。

傳統(tǒng)的云數(shù)據(jù)庫(kù)會(huì)提供多種內(nèi)存/CPU規(guī)格給用戶購(gòu)買。即使無(wú)法時(shí)刻用滿負(fù)載,用戶也需要為選中的規(guī)格付費(fèi)。如果要將數(shù)據(jù)庫(kù)serverless化,需要滿足以下三大特性:

第一、自動(dòng)擴(kuò)縮容。訪問(wèn)量上來(lái)時(shí)自動(dòng)擴(kuò)容,降低時(shí)自動(dòng)縮容,用戶不需要關(guān)注規(guī)格。

第二、按照實(shí)際使用的資源付費(fèi)。

第三、不使用不計(jì)費(fèi)。如果沒(méi)有訪問(wèn),不應(yīng)該收費(fèi)。

02 Serverless數(shù)據(jù)庫(kù)選型

在講述serverless數(shù)據(jù)庫(kù)選型之前,李志陽(yáng)先介紹了云數(shù)據(jù)庫(kù)架構(gòu)的演進(jìn)。

7dd98d1001e93901c6d8846d7a800cef37d1967b.jpg

圖左側(cè)是目前的主流架構(gòu)—單體冗余架構(gòu)(一主多從),是現(xiàn)在大部分客戶使用的架構(gòu)。這類架構(gòu)存在擴(kuò)展性問(wèn)題,實(shí)例的升降級(jí)和讀擴(kuò)展,都通過(guò)數(shù)據(jù)搬遷實(shí)現(xiàn),隨著數(shù)據(jù)量的增長(zhǎng),遷移耗時(shí)越來(lái)越長(zhǎng)。

為了解決這個(gè)問(wèn)題,業(yè)界趨勢(shì)是采用存算分離架構(gòu),衍生出兩類,一類是ShareNothing架構(gòu),計(jì)算和存儲(chǔ)均支持水平擴(kuò)展,擴(kuò)展能力非常強(qiáng)。不過(guò),也存在一些缺點(diǎn),其中最大的問(wèn)題是SQL兼容性,解決之道在于持續(xù)構(gòu)建和完善自己的生態(tài),讓用戶更好的接受提供的用法;

另一類則是ShareStorage架構(gòu),共享存儲(chǔ)架構(gòu)并沒(méi)有改變查詢引擎和ACI這些基礎(chǔ)特性,可以做到100%的兼容性。當(dāng)然它也有缺點(diǎn),目前計(jì)算節(jié)點(diǎn)沒(méi)有提供寫(xiě)擴(kuò)展能力,這個(gè)也是未來(lái)演進(jìn)的方向。

隨后,李志陽(yáng)又關(guān)注到了Serverless數(shù)據(jù)庫(kù)的用戶群,主要面向中長(zhǎng)尾用戶,他們對(duì)擴(kuò)展性的訴求并不強(qiáng),更多關(guān)注使用的便利性,兼容性是最重要一點(diǎn)。

因此,騰訊云優(yōu)先選擇了基于共享存儲(chǔ)架構(gòu)的數(shù)據(jù)庫(kù)產(chǎn)品TDSQL-C提供Serverless服務(wù)。

1b4c510fd9f9d72ac0337cc82a41703c359bbb00.jpg

李志陽(yáng)對(duì)TDSQL-C的總體架構(gòu)進(jìn)行了介紹,TDSQL-C是騰訊云基于共享存儲(chǔ)架構(gòu)的云原生數(shù)據(jù)庫(kù),始于2017年。由于ToB業(yè)務(wù)對(duì)穩(wěn)定性的要求很高,在設(shè)計(jì)之初就定下了一個(gè)基本原則,即復(fù)用云上的成熟組件。

在計(jì)算層使用了騰訊維護(hù)的MySQL內(nèi)核分支-TXSQL,復(fù)用它的bugfix和新特性;存儲(chǔ)側(cè)則選擇了在騰訊內(nèi)部有十幾年歷史的云硬盤(pán)CBS,把CBS的核心存儲(chǔ)和硬盤(pán)邏輯進(jìn)行剖離,打造了統(tǒng)一存儲(chǔ)平臺(tái)-HiSTOR。

作為存儲(chǔ)底座,已適配了云硬盤(pán)CBS、云分布式文件系統(tǒng)CFS和數(shù)據(jù)庫(kù)TDSQL-C等多款產(chǎn)品,提供副本同步、故障自動(dòng)遷移、數(shù)據(jù)校驗(yàn)等一系列完善的數(shù)據(jù)安全保障能力,這正是TDSQL-C產(chǎn)品能夠穩(wěn)定運(yùn)行數(shù)年的重要基石。

另外,它還提供豐富的特性:備份/回檔速度,支持以MB為粒度并發(fā),速度達(dá)到GB/s;除了高性能的SSD,還有緩存和EC版本,應(yīng)對(duì)歸檔類的業(yè)務(wù),提供更低成本的存儲(chǔ)。

除了上述兩個(gè)關(guān)鍵組件,我們還在計(jì)算側(cè)實(shí)現(xiàn)了物理復(fù)制,將innodb的redo日志準(zhǔn)實(shí)時(shí)同步到備機(jī),主從延時(shí)非常低(小于1毫秒);相比傳統(tǒng)數(shù)據(jù)庫(kù)先寫(xiě)日志后異步刷臟,TDSQL-C只寫(xiě)日志到存儲(chǔ),存儲(chǔ)側(cè)通過(guò)dbstore模塊將日志轉(zhuǎn)化數(shù)據(jù)。日志下沉的優(yōu)點(diǎn)很多,這里不做贅述。

由于騰訊云是國(guó)內(nèi)首家提供Serverless數(shù)據(jù)庫(kù)的廠家,李志陽(yáng)主要對(duì)比了國(guó)外AWS的同類產(chǎn)品Aurora Serverless,并分析如何實(shí)現(xiàn)serverless數(shù)據(jù)庫(kù)的三大特性。

060828381f30e924736352a9b163360e1f95f7dc.jpg

一、自動(dòng)擴(kuò)縮容

上圖右側(cè)有一個(gè)共享的虛擬機(jī)池,規(guī)格不盡相同。Aurora Serverless的擴(kuò)容策略是從1核2G到4核8G逐步遞增規(guī)格。例如需要從1核2G擴(kuò)大到2核4G,則從池子里面找到2核4G的虛擬機(jī),將對(duì)應(yīng)的數(shù)據(jù)盤(pán)掛載到虛擬機(jī),并將訪問(wèn)切到該虛擬機(jī),即可完成自動(dòng)擴(kuò)容。

有2個(gè)問(wèn)題:1、假設(shè)用戶訪問(wèn)本身需要4核8G,Aurora Serverless仍需要從1核2G開(kāi)始逐步增加到4核8G,擴(kuò)容耗時(shí)偏長(zhǎng);2、由于選擇新的虛擬機(jī)擴(kuò)容,會(huì)導(dǎo)致BP失效,訪問(wèn)將經(jīng)歷一次冷啟動(dòng)過(guò)程。

二、按使用量計(jì)費(fèi)

實(shí)現(xiàn)比較簡(jiǎn)單,秒級(jí)粒度統(tǒng)計(jì)正在使用的規(guī)格,按照該規(guī)格計(jì)費(fèi)。

三、不使用不計(jì)費(fèi)

如果實(shí)例超過(guò)一段時(shí)間沒(méi)有訪問(wèn),則關(guān)閉計(jì)算節(jié)點(diǎn)。由于有數(shù)據(jù)庫(kù)代理節(jié)點(diǎn)作為接入層,如果用戶再有訪問(wèn)請(qǐng)求,會(huì)先到達(dá)數(shù)據(jù)庫(kù)代理節(jié)點(diǎn)。

此時(shí),代理節(jié)點(diǎn)按照上面提到的方法,從共享池里面找到對(duì)應(yīng)的虛擬機(jī)提供服務(wù)。對(duì)用戶而言,原有連接不受到影響,只是感覺(jué)到一次卡頓。缺點(diǎn)是引入了代理節(jié)點(diǎn),用戶需要為此付費(fèi);另外,恢復(fù)時(shí)長(zhǎng)需要30秒,耗時(shí)也比較長(zhǎng)。

f7246b600c33874472d1496f576381f1d72aa005.jpg

擴(kuò)容是BP失效導(dǎo)致的問(wèn)題

03 介紹TDSQL-C Serverless

了解完業(yè)界情況,李志陽(yáng)開(kāi)始介紹TDSQL-C Serverless。

838ba61ea8d3fd1fa9bfe3b1cf257d1794ca5f7f.jpg

上圖為總體架構(gòu),核心模塊為中控節(jié)點(diǎn)(svls scheduler)。

中控節(jié)點(diǎn)接收計(jì)算層采集的內(nèi)存/CPU/訪問(wèn)情況等監(jiān)控?cái)?shù)據(jù),根據(jù)策略決定是否擴(kuò)縮容,啟停實(shí)例,以及按照計(jì)費(fèi)規(guī)則上報(bào)云控制臺(tái)計(jì)費(fèi)。

相對(duì)Aurora Serverless的區(qū)別在于暫停的應(yīng)對(duì),TDSQL-C Serverless有faker模塊,暫停計(jì)算節(jié)點(diǎn)時(shí)會(huì)把四層的vip:vport綁定到faker端口,用戶請(qǐng)求過(guò)來(lái)后,識(shí)別為有效的MySQL協(xié)議,則通知中控模塊將實(shí)例重新拉起。其優(yōu)點(diǎn)在于用戶不需要為代理節(jié)點(diǎn)付費(fèi)。

隨后,李志陽(yáng)詳細(xì)解釋了TDSQL-C Serverless如何滿足serverless數(shù)據(jù)庫(kù)的三大特性。

一、自動(dòng)擴(kuò)縮容:

目標(biāo)是做到秒級(jí)的擴(kuò)縮容,并且期間對(duì)用戶是平滑的,無(wú)感知的。

42a98226cffc1e17b3c9cde9b6fbae0b728de96c.jpg

以上圖為例子,用戶在購(gòu)買時(shí)選擇最小規(guī)格為1核2G,最大規(guī)格為2核4G。左邊為Aurora Serverless,矩形的縱坐標(biāo)是CPU,橫坐標(biāo)為內(nèi)存。

初始為1核2G,當(dāng)業(yè)務(wù)訪問(wèn)過(guò)來(lái),把CPU用滿了,持續(xù)一段時(shí)間才擴(kuò)容到2核4G;而右側(cè)的TDSQL-C Serverless,初始就給用戶提供最大CPU規(guī)格,內(nèi)存則從最小規(guī)格開(kāi)始。假設(shè)用戶使用的CPU超過(guò)1核,并持續(xù)一段時(shí)間,將把內(nèi)存從2G擴(kuò)到4G??梢钥闯?,TDSQL-C Serverless的CPU資源不會(huì)受限,可以在設(shè)置的最大規(guī)格內(nèi)任意使用。優(yōu)點(diǎn)是用戶性能不受限,引入的缺點(diǎn)是可能整機(jī)出現(xiàn)滿負(fù)載。

由于TDSQL-C采用存算分離架構(gòu),一旦監(jiān)控到整機(jī)資源超過(guò)閾值,就進(jìn)行快速遷移。遷移其實(shí)就是在另外一臺(tái)相對(duì)空閑的機(jī)器重新拉起實(shí)例,秒級(jí)完成。在資源負(fù)載上可以精準(zhǔn)控制。另外,現(xiàn)在云數(shù)據(jù)庫(kù)整機(jī)利用率偏低?;谶@兩點(diǎn),TDSQL-C Serverless可以很好應(yīng)對(duì)。

二、按使用量計(jì)費(fèi):

我們定義了一個(gè)算力單元CCU(TDSQL-C Compute Unit)=max{CPU,MEM/2,最小規(guī)格}。其中,MEM/2的含義是,由于我們定義的規(guī)格CPU/內(nèi)存比都是1/2,內(nèi)存除以2相當(dāng)于把內(nèi)存換算成CPU。

整體還是以CPU決定整個(gè)算力。我們通過(guò)計(jì)算每個(gè)小時(shí)CCU平均值給用戶計(jì)費(fèi)。

d058ccbf6c81800a8ffe7cd84c5e6bf2838b4745.jpg

騰訊云李志陽(yáng):深入解讀無(wú)服務(wù)器架構(gòu)下的數(shù)據(jù)庫(kù)

舉例說(shuō),假設(shè)用戶選擇最小最大規(guī)格為0.25核-4核,從圖中可以看到,業(yè)務(wù)高峰過(guò)來(lái),一開(kāi)始就能用到3核,右側(cè)CCU也會(huì)按照3核計(jì)費(fèi),能夠很好的應(yīng)對(duì)業(yè)務(wù)負(fù)載。

三、不使用無(wú)計(jì)費(fèi):

自動(dòng)啟停的邏輯比較簡(jiǎn)單,只要10分鐘(用戶可配)內(nèi)監(jiān)測(cè)到?jīng)]有訪問(wèn)就回收掉計(jì)算節(jié)點(diǎn),訪問(wèn)回來(lái)就把節(jié)點(diǎn)重新拉起。

最核心的點(diǎn)是怎么做到快速恢復(fù),之前提過(guò)TDSQL-C是日志下沉的,存儲(chǔ)側(cè)接收到日志之后會(huì)源源不斷地回放,數(shù)據(jù)庫(kù)計(jì)算節(jié)點(diǎn)在啟動(dòng)的過(guò)程中,不需要像傳統(tǒng)數(shù)據(jù)庫(kù)那樣加載到日志然后重放,所以啟動(dòng)相對(duì)比較簡(jiǎn)單和快速。

具體來(lái)說(shuō),VDL表示已經(jīng)持久化的日志點(diǎn)。在運(yùn)行階段會(huì)不斷異步持久化VDL(last-vdl)。Recovery階段,首先獲取last-vdl(checkpoint點(diǎn)),然后廣播所有相關(guān)的小表獲取大于等于last-vdl的所有日志段,最后通過(guò)敗者樹(shù)找到最后連續(xù)的日志點(diǎn)作為VDL。整個(gè)過(guò)程都是并行化的,而且沒(méi)有數(shù)據(jù)重放,耗時(shí)小于100毫秒,另外,我們還對(duì)MySQL啟動(dòng)過(guò)程做了多處并行化處理,目前可以2秒內(nèi)恢復(fù)實(shí)例。

04 總結(jié)與展望

李志陽(yáng)表示,TDSQL-C Serverless還在持續(xù)優(yōu)化,不久的將來(lái)會(huì)把冷啟動(dòng)從2秒縮短到百毫秒級(jí)別,更貼近云函數(shù)的啟動(dòng)時(shí)間。

同時(shí),為了進(jìn)一步降低用戶的存儲(chǔ)成本,如果很長(zhǎng)時(shí)間沒(méi)有訪問(wèn),將數(shù)據(jù)轉(zhuǎn)存到對(duì)象存儲(chǔ)COS,屆時(shí)用戶只需要付COS的費(fèi)用即可。最后,歡迎大家多多使用TDSQL-C Serverless!

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于百家號(hào),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
騰訊云數(shù)據(jù)庫(kù)PostgreSQL全面支持PG 17
即日起,騰訊云PostgreSQL全面支持PostgreSQL 17.0。所有用戶可使用大版本升級(jí)能力升級(jí)至最新的PostgreSQL 17.0進(jìn)行體驗(yàn),也可以在產(chǎn)品購(gòu)買頁(yè)直接購(gòu)買。
騰訊云
云服務(wù)
2024-12-152024-12-15
高可用這個(gè)問(wèn)題,加機(jī)器就能解決?
高可用這個(gè)問(wèn)題,加機(jī)器就能解決?
互聯(lián)網(wǎng)服務(wù)的可用性問(wèn)題是困擾企業(yè)IT人員的達(dá)摩克利斯之劍:防于未然,體現(xiàn)不出價(jià)值。已然發(fā)生,又面臨P0危機(jī)。就更別提穩(wěn)定性建設(shè)背后顯性的IT預(yù)算問(wèn)題與隱性的人員成本問(wèn)題。
騰訊云
云服務(wù)
2024-11-252024-11-25
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
TDSQL TDStore引擎版替換HBase:在歷史庫(kù)場(chǎng)景中的成本與性能優(yōu)勢(shì)
HBase憑借其高可用性、高擴(kuò)展性和強(qiáng)一致性,以及在廉價(jià)PC服務(wù)器上的低部署成本,廣泛應(yīng)用于大規(guī)模數(shù)據(jù)分析。
騰訊云
云服務(wù)
2024-11-042024-11-04
復(fù)雜查詢性能弱,只讀分析引擎來(lái)幫忙
復(fù)雜查詢性能弱,只讀分析引擎來(lái)幫忙
隨著當(dāng)今業(yè)務(wù)的高速發(fā)展,復(fù)雜多表關(guān)聯(lián)的場(chǎng)景越來(lái)越普遍。但基于行式存儲(chǔ)的數(shù)據(jù)庫(kù)在進(jìn)行復(fù)雜查詢時(shí)性能相對(duì)較弱。
騰訊云
云服務(wù)
2024-11-022024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家