一種可靈活配置的數(shù)據(jù)庫(kù)分層存儲(chǔ)優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)領(lǐng)域,涉及一種數(shù)據(jù)庫(kù)存儲(chǔ)優(yōu)化方法,尤其涉及一種 可靈活配置的數(shù)據(jù)庫(kù)分層存儲(chǔ)優(yōu)化方法。
[0002]
【背景技術(shù)】
[0003] 通常,存儲(chǔ)介質(zhì)的用途主要包括兩類:緩存數(shù)據(jù):為CHJ高速計(jì)算緩存數(shù)據(jù),例如 DRAM;存儲(chǔ)數(shù)據(jù):永久保存應(yīng)用數(shù)據(jù),例如HDD;當(dāng)前的主流存儲(chǔ)介質(zhì)主要有DRAM、NVM、SSD和 HDD,它們的特征對(duì)比如下表1所示: 表1當(dāng)前主流存儲(chǔ)介質(zhì)特征對(duì)比表
上表1中DRAM和NVM都屬于內(nèi)存設(shè)備,價(jià)格昂貴,存取單位是字節(jié),在數(shù)據(jù)庫(kù)運(yùn)行中常用 于緩存數(shù)據(jù),二者的主要區(qū)別包括:DRAM和NVM存取速度都很快,NVM具有非易失性,而DRAM 沒(méi)有,因此在數(shù)據(jù)庫(kù)中DRAM和NVM都可用于緩存數(shù)據(jù),而NVM還可用于永久存儲(chǔ)數(shù)據(jù);NVM的 存儲(chǔ)容量比DRAM大;DRAM的存取速度比NVM稍快,因此更適合緩存最活躍的數(shù)據(jù)。
[0004] 上表1中SSD和HDD都屬于硬盤(pán)設(shè)備,存儲(chǔ)容量比內(nèi)存設(shè)備要大很多,具有非易失 性,常用于永久存儲(chǔ)數(shù)據(jù),二者的主要區(qū)別包括:SSD的10隨機(jī)存取速度比HDD快很多;SSD的 存儲(chǔ)容量比HDD??;SSD的價(jià)格比HDD貴。
[0005] 傳統(tǒng)數(shù)據(jù)庫(kù)一般只支持DRAM和HDD,而還不支持NVM和SSD等新型存儲(chǔ)介質(zhì)。其中, 前者用于CPU計(jì)算時(shí)緩存數(shù)據(jù),后者用于永久存儲(chǔ)數(shù)據(jù)。并且,數(shù)據(jù)庫(kù)對(duì)應(yīng)用數(shù)據(jù)的存儲(chǔ)管 理一般都是自動(dòng)實(shí)現(xiàn),用戶不能靈活配置各自的數(shù)據(jù)存儲(chǔ)管理方式。
[0006] 傳統(tǒng)數(shù)據(jù)庫(kù)的性能瓶頸主要體現(xiàn)在內(nèi)存容量不足,內(nèi)存和硬盤(pán)的10存取速度不匹 配等方面,具體如下: 在內(nèi)存上,傳統(tǒng)數(shù)據(jù)庫(kù)主要采用DRAM內(nèi)存,它的主要問(wèn)題包括:容量小,不能緩存大量 的計(jì)算數(shù)據(jù),從而限制CPU的處理能力;易失性,一旦斷電則可能導(dǎo)致DRAM上緩存的數(shù)據(jù)丟 失,因此為保障數(shù)據(jù)可靠性,更新后的數(shù)據(jù)應(yīng)及時(shí)地存儲(chǔ)到硬盤(pán)等永久介質(zhì)上,這易導(dǎo)致 CHJ計(jì)算受阻;換句話說(shuō),當(dāng)前內(nèi)存的主要問(wèn)題是容量小和易失性問(wèn)題。
[0007] 在硬盤(pán)上,傳統(tǒng)數(shù)據(jù)庫(kù)主要采用HDD硬盤(pán),它的主要問(wèn)題是:雖然存儲(chǔ)容量非常大, 但它的10存取速度,尤其是隨機(jī)存取速度非常慢。在很多數(shù)據(jù)庫(kù)應(yīng)用中,通常需要大量的索 引掃描,即隨機(jī)10存取訪問(wèn)。因此,當(dāng)前硬盤(pán)的主要問(wèn)題是隨機(jī)存取速度慢問(wèn)題。
[0008] 綜上所述,在傳統(tǒng)基于DRAM和HDD方式下,用戶是不能設(shè)計(jì)自己的數(shù)據(jù)存儲(chǔ)方案, 數(shù)據(jù)存儲(chǔ)由系統(tǒng)內(nèi)部自動(dòng)實(shí)現(xiàn),即永久數(shù)據(jù)存儲(chǔ)在HDD硬盤(pán)上,緩存數(shù)據(jù)存儲(chǔ)在DRAM內(nèi)存 上。這種方式的主要缺陷包括:因 DRAM和HDD的能力不足,制約CPU處理能力的充分發(fā)揮。尤 其是在數(shù)據(jù)規(guī)模和吞吐量要求很高的數(shù)據(jù)庫(kù)應(yīng)用中,10問(wèn)題會(huì)變得更加突出。
[0009]
【發(fā)明內(nèi)容】
[0010] 本發(fā)明正是基于以上問(wèn)題,提供一種可靈活配置的數(shù)據(jù)庫(kù)分層存儲(chǔ)優(yōu)化方法,旨 在保護(hù)用戶已有數(shù)據(jù)庫(kù)系統(tǒng)投資前提下,通過(guò)數(shù)據(jù)庫(kù)內(nèi)部少量改造和開(kāi)發(fā)新SQL功能提供 數(shù)據(jù)庫(kù)存儲(chǔ)優(yōu)化。
[0011] 為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用的技術(shù)方案如下: 本發(fā)明所提供一種可靈活配置的數(shù)據(jù)庫(kù)分層存儲(chǔ)優(yōu)化方法,包括以下步驟: 提供一 SQL功能,用于支持用戶按需靈活配置表、索引和WAL日志的存儲(chǔ)管理方式;和用 戶利用提供的所述SQL功能,依據(jù)應(yīng)用數(shù)據(jù)的活躍程度,定制自己的表、索引和WAL日志的存 儲(chǔ)管理方式。
[0012]進(jìn)一步的,所述SQL功能包括:配置表數(shù)據(jù)、索引數(shù)據(jù)、WAL日志的內(nèi)存或硬盤(pán)的存 儲(chǔ)介質(zhì)類型,所述存儲(chǔ)介質(zhì)包括DRAM、NVM、SSD和HDD。
[0013]進(jìn)一步的,所述SQL功能包括:不記錄WAL日志的開(kāi)關(guān)。
[0014] 較佳的,通過(guò)所述SQL功能,用戶設(shè)置表存儲(chǔ)的硬盤(pán)類型,把經(jīng)常訪問(wèn)表的硬盤(pán)類 型設(shè)置為SSD,把不經(jīng)常訪問(wèn)表的硬盤(pán)類型設(shè)置為HDD。
[0015] 較佳的,通過(guò)所述SQL功能,用戶設(shè)置表緩存的內(nèi)存類型,把經(jīng)常訪問(wèn)表的內(nèi)存類 型設(shè)置為DRAM,把不經(jīng)常訪問(wèn)表的內(nèi)存類型設(shè)置為NVM。
[0016] 較佳的,通過(guò)所述SQL功能,用戶設(shè)置索引存儲(chǔ)的硬盤(pán)類型,把經(jīng)常訪問(wèn)索引的硬 盤(pán)類型設(shè)置為SSD,把不經(jīng)常訪問(wèn)索引的硬盤(pán)類型設(shè)置為HDD。
[0017]較佳的,通過(guò)所述SQL功能,用戶設(shè)置索引緩存的內(nèi)存類型,把經(jīng)常訪問(wèn)索引的內(nèi) 存類型設(shè)置為DRAM,把不經(jīng)常訪問(wèn)索引的內(nèi)存類型設(shè)置為NVM。
[0018] 較佳的,通過(guò)所述SQL功能,用戶依據(jù)應(yīng)用特征決定是否記錄WAL日志,把0LAP的表 定義為不記WAL日志,把0LTP的表定義為記WAL日志。
[0019] 較佳的,通過(guò)所述SQL功能,用戶依據(jù)應(yīng)用特征設(shè)置WAL日志存儲(chǔ)到NVM或HDD。
[0020] 本發(fā)明有益效果:本發(fā)明所述的可靈活配置的數(shù)據(jù)庫(kù)分層存儲(chǔ)優(yōu)化方法,旨在保 護(hù)用戶已有數(shù)據(jù)庫(kù)系統(tǒng)投資前提下,通過(guò)數(shù)據(jù)庫(kù)內(nèi)部少量改造和開(kāi)發(fā)新SQL功能提供一種 數(shù)據(jù)庫(kù)存儲(chǔ)優(yōu)化方法,該方法利用當(dāng)前NVM和SSD等新型存儲(chǔ)技術(shù)擴(kuò)展傳統(tǒng)數(shù)據(jù)庫(kù)的存儲(chǔ)管 理能力,有效解決當(dāng)前數(shù)據(jù)庫(kù)的10瓶頸問(wèn)題,并顯著地提升系統(tǒng)的性能。
【附圖說(shuō)明】
[0021] 圖1是改造前基于DRAM和HDD的數(shù)據(jù)庫(kù)存儲(chǔ)管理示意圖。
[0022]圖2是改造后基于DRAM+NVM+SSD+HDD的數(shù)據(jù)庫(kù)分層存儲(chǔ)管理示意圖; 圖3是改造前基于DRAM+HDD架構(gòu)的SQL語(yǔ)句執(zhí)行流程圖;和 圖4是改造后基于DRAM+NVM+SSD+HDD架構(gòu)的SQL語(yǔ)句執(zhí)行流程圖。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,如果不沖突,本發(fā) 明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。
[0024] NVM技術(shù)是當(dāng)前內(nèi)存領(lǐng)域的新技術(shù),與DRAM相比,它不僅容量大,而且具有非易失 性,因此利用這種內(nèi)存不僅能提升DRAM的存儲(chǔ)容量,還能克服DRAM的易失缺陷。換句話說(shuō), NVM既可作為類似DRAM的緩存設(shè)備,也可作為類似HDD的永久存儲(chǔ)設(shè)備。但和硬盤(pán)相比,NVM 還很貴且容量小很多,只能作為關(guān)鍵數(shù)據(jù)的永久存儲(chǔ)設(shè)備。因此,在實(shí)際應(yīng)用中,可考慮通 過(guò)增加 NVM內(nèi)存擴(kuò)充DRAM的存儲(chǔ)容量,即實(shí)現(xiàn)更大的內(nèi)存,也可考慮把少量影響性能的關(guān)鍵 數(shù)據(jù)(如數(shù)據(jù)庫(kù)的WAL日志)存放到NVM上,這不僅能減少原來(lái)把它存到硬盤(pán)上的操作,還能 加快WAL日志的處理速度。
[0025] 綜上所述,雖然NVM的速度略遜于DRAM,但它具有相對(duì)較大的存儲(chǔ)容量,適合把活 躍度稍差的數(shù)據(jù)從DRAM分流到NVM上。不僅如此,NVM的非易失性,使得NVM可以作為永久存 儲(chǔ)介質(zhì)使用,例如可考慮用它存儲(chǔ)數(shù)據(jù)量較小又很重要的WAL日志數(shù)據(jù)。
[0026]類似NVM,SSD技術(shù)是當(dāng)前硬盤(pán)領(lǐng)域的新技術(shù)。SSD的主要特點(diǎn)是它的10隨機(jī)存取速 度和順序存取速度相當(dāng)。雖然價(jià)格比HDD貴,但它的10隨機(jī)存儲(chǔ)速度比HDD要快很多。在數(shù)據(jù) 庫(kù)應(yīng)用中,依據(jù)拇指規(guī)則,大多數(shù)的SQL語(yǔ)句通常只經(jīng)常訪問(wèn)少量的活躍數(shù)據(jù)。因此,可考慮 把活躍數(shù)據(jù)存儲(chǔ)由原來(lái)的HDD替換成價(jià)格較貴且10處理性能較高的SSD,這種方式不僅可顯 著解決數(shù)據(jù)庫(kù)的10問(wèn)題,而且與把HDD全替換成SSD方案相比,還能保護(hù)用戶的已有投資,成 本相對(duì)較小。
[0027] 綜上所述,雖然SSD和HDD都可用來(lái)永久存儲(chǔ)數(shù)據(jù),但SSD的10隨機(jī)存取速度遠(yuǎn)快于 HDD,因此在隨機(jī)存取訪問(wèn)速度要求較高的數(shù)據(jù)庫(kù)應(yīng)用中,可用SSD全部或部分替換HDD,例 如只把活躍數(shù)據(jù)存儲(chǔ)從HDD轉(zhuǎn)移到SSD上。
[0028]本發(fā)明基于傳統(tǒng)數(shù)據(jù)庫(kù)的存儲(chǔ)管理方式,開(kāi)發(fā)新的SQL功能,這些功能不僅能擴(kuò)展 數(shù)據(jù)庫(kù)的存儲(chǔ)介質(zhì)類型,即支持新型介質(zhì)NVM和SSD,而且還允許用戶靈活配置自己的數(shù)據(jù) 存儲(chǔ)管理方式。本發(fā)明開(kāi)發(fā)新的SQL功能如表2所示: 表2新SQL功能列表
通過(guò)上表2的SQL功能,用戶可根據(jù)應(yīng)用數(shù)據(jù)特征靈活設(shè)計(jì)自身的數(shù)據(jù)存儲(chǔ)方案,具體 如下: 通過(guò)功能1用戶可設(shè)置表存儲(chǔ)的硬盤(pán)類型,例如把經(jīng)常訪問(wèn)表的硬盤(pán)類型設(shè)置為SSD, 把不經(jīng)常訪問(wèn)表(如歷史數(shù)據(jù))的硬盤(pán)類型設(shè)置為HDD; 通過(guò)功能2用戶可設(shè)置表緩存的內(nèi)存類型,例如把經(jīng)常訪問(wèn)表的內(nèi)存類型設(shè)置為DRAM, 把不經(jīng)常訪問(wèn)表的內(nèi)存類型設(shè)置為NVM; 通過(guò)功能3用戶可設(shè)置索引存儲(chǔ)的硬盤(pán)類型,例如把經(jīng)常訪問(wèn)索引的硬盤(pán)類型設(shè)置為 SSD,把不經(jīng)常訪問(wèn)索