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