本發(fā)明涉及zns存儲(chǔ),尤其是涉及一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu)。
背景技術(shù):
1、現(xiàn)有技術(shù)中,由于其相較于傳統(tǒng)設(shè)備具有訪問速度快和接口統(tǒng)一等特點(diǎn),zns設(shè)備已經(jīng)逐漸被部署在越來越多的數(shù)據(jù)中心的外部存儲(chǔ)中。然而,zns接口順序?qū)懙奶攸c(diǎn)極大地限制了設(shè)備性能?;谌罩窘Y(jié)構(gòu)化合并樹的上層鍵值存儲(chǔ)應(yīng)用順序?qū)懙奶攸c(diǎn)與zns接口順序?qū)懙南拗仆昝榔鹾?,目前大量已有工作通過使用日志結(jié)構(gòu)化合并樹來緩解zns順序?qū)懡涌谒鶐淼男阅苡绊?,提高日志結(jié)構(gòu)化合并樹的壓縮效率能充分地發(fā)揮出zns接口的性能優(yōu)勢(shì)。
2、現(xiàn)有的日志結(jié)構(gòu)化合并樹的壓縮一般選擇分?jǐn)?shù)較高的層級(jí)作為壓縮的輸入層級(jí),但沒有考慮當(dāng)前設(shè)備的空閑空間狀況。當(dāng)空閑空間不足時(shí),如果某層級(jí)分?jǐn)?shù)較高,但涉及的數(shù)據(jù)少,則仍會(huì)優(yōu)先選擇該層級(jí),但是該層級(jí)涉及較少的數(shù)據(jù)導(dǎo)致垃圾回收時(shí)的有效數(shù)據(jù)遷移開銷明顯增多。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是提供一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),可以通過動(dòng)態(tài)選擇compaction輸入層級(jí)減少zone中的有效數(shù)據(jù)量,以減少垃圾回收時(shí)的有效數(shù)據(jù)遷移開銷。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),在固態(tài)盤中預(yù)先設(shè)置容量感知模塊、優(yōu)先級(jí)判斷模塊、victim選擇模塊和數(shù)據(jù)放置模塊,每當(dāng)compaction調(diào)度引擎分派壓縮任務(wù)時(shí),容量感知模塊獲取設(shè)備空閑空間容量,為不同層級(jí)決定a,b,c類別的權(quán)重;
3、然后在優(yōu)先級(jí)判斷模塊中根據(jù)空閑空間容量、層級(jí)的分?jǐn)?shù),計(jì)算出層級(jí)的優(yōu)先級(jí),并根據(jù)層級(jí)優(yōu)先級(jí)將各層入隊(duì),形成優(yōu)先級(jí)隊(duì)列;
4、通過victim選擇模塊依次從優(yōu)先級(jí)隊(duì)列中取出層級(jí)作為compaction壓縮的輸入,確定輸入層級(jí)后,將其與下層重疊的sst數(shù)據(jù)送入合并壓縮引擎以歸并排序;
5、最后通過數(shù)據(jù)放置模塊將結(jié)果輸出到指定位置。
6、優(yōu)選的,在進(jìn)行compaction壓縮的過程中根據(jù)空閑空間動(dòng)態(tài)產(chǎn)生無效數(shù)據(jù)量,當(dāng)空閑空間不足時(shí),優(yōu)先級(jí)的計(jì)算公式選擇下層作為輸入以更多地產(chǎn)生無效數(shù)據(jù),將同一level內(nèi)的數(shù)據(jù)放置到同一zone中,直接重置zone完成gc。
7、優(yōu)選的,容量感知模塊負(fù)責(zé)獲取設(shè)備的空閑空間容量remain_cap,以便根據(jù)剩余空間動(dòng)態(tài)調(diào)整權(quán)重;提出三個(gè)臨界值以刻畫當(dāng)前設(shè)備的空間狀況:less、medium、large,三個(gè)臨界值被設(shè)置為設(shè)備存儲(chǔ)空間的比值:0.3,0.5,0.7,三個(gè)臨界值與設(shè)備的空間大小密切相關(guān),設(shè)備存儲(chǔ)空間越大,這三個(gè)臨界值就越大。
8、優(yōu)選的,三個(gè)臨界值根據(jù)空間大小動(dòng)態(tài)調(diào)整,優(yōu)先級(jí)計(jì)算的空間部分根據(jù)remain_cap動(dòng)態(tài)變化,在三個(gè)臨界值之間分為四種情況:
9、remina_cap<less,需要gc回收大量的無效數(shù)據(jù),a=3,b=6,c=9;
10、less<remina_cap<medium,需要gc回收空間,a=2,b=4,c=6;
11、medium<remain_cap<large,a=1,b=2,c=3;
12、remain_cap>large,a=0.5,b=1,c=1.5。
13、優(yōu)選的,優(yōu)先級(jí)判斷模塊根據(jù)剩余容量的相關(guān)信息以及各層級(jí)的分?jǐn)?shù),計(jì)算出各層級(jí)的優(yōu)先級(jí);計(jì)算公式為:,計(jì)算的優(yōu)先級(jí);
14、其中,代表權(quán)重,代表設(shè)備的空閑程度,代表層級(jí)的分?jǐn)?shù);將lsm樹中的層級(jí)劃分為a,b,c三類,這三類層級(jí)對(duì)應(yīng)的空閑程度便分別為a,b,c,其由容量感知模塊根據(jù)空閑空間動(dòng)態(tài)的決定;最后,將各層級(jí)根據(jù)優(yōu)先級(jí)大小入隊(duì)。
15、優(yōu)選的,victim選擇模塊從優(yōu)先級(jí)隊(duì)列中依次出隊(duì)選擇層級(jí)作為compaction壓縮的輸入層級(jí),確定壓縮輸入層級(jí)后,從該層級(jí)中挑選出victim?sst,并從下層中選出重疊的sst送入歸并引擎中合并排序,合并排序結(jié)束產(chǎn)生新的數(shù)據(jù)后,此前的數(shù)據(jù)被無效,從而產(chǎn)生無效數(shù)據(jù)。
16、優(yōu)選的,數(shù)據(jù)放置模塊將合并壓縮引擎的排序新數(shù)據(jù)放置到對(duì)應(yīng)新的輸出層級(jí)中,后臺(tái)的垃圾回收操作在遷移有效數(shù)據(jù)后,也會(huì)通過數(shù)據(jù)放置模塊更新數(shù)據(jù)在lsm樹中的位置,這個(gè)位置關(guān)系即文件系統(tǒng)在日志結(jié)構(gòu)化合并樹層級(jí)中的邏輯位置與zns設(shè)備上的物理位置之間的映射關(guān)系。
17、因此,本發(fā)明采用上述一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),提出利用日志結(jié)構(gòu)化合并樹中的壓縮機(jī)制動(dòng)態(tài)地根據(jù)當(dāng)前設(shè)備空閑空間和層級(jí)的分?jǐn)?shù)選擇輸入層級(jí)執(zhí)行壓縮操作,從而減少垃圾回收的遷移開銷,相較于傳統(tǒng)的根據(jù)層級(jí)的分?jǐn)?shù)選擇壓縮輸入層級(jí),解決了其對(duì)下層壓縮數(shù)據(jù)量大的忽視導(dǎo)致增加的數(shù)據(jù)遷移開銷的問題。
18、下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
1.一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:在固態(tài)盤中預(yù)先設(shè)置容量感知模塊、優(yōu)先級(jí)判斷模塊、victim選擇模塊和數(shù)據(jù)放置模塊,每當(dāng)compaction調(diào)度引擎分派壓縮任務(wù)時(shí),容量感知模塊獲取設(shè)備空閑空間容量,為不同層級(jí)決定a,b,c類別的權(quán)重;
2.根據(jù)權(quán)利要求1所述的一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:在進(jìn)行compaction壓縮的過程中根據(jù)空閑空間動(dòng)態(tài)產(chǎn)生無效數(shù)據(jù)量,當(dāng)空閑空間不足時(shí),優(yōu)先級(jí)的計(jì)算公式選擇下層作為輸入以更多地產(chǎn)生無效數(shù)據(jù),將同一level內(nèi)的數(shù)據(jù)放置到同一zone中,直接重置zone完成gc。
3.根據(jù)權(quán)利要求1所述的一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:容量感知模塊負(fù)責(zé)獲取設(shè)備的空閑空間容量remain_cap,以便根據(jù)剩余空間動(dòng)態(tài)調(diào)整權(quán)重;提出三個(gè)臨界值以刻畫當(dāng)前設(shè)備的空間狀況:less、medium、large,三個(gè)臨界值被設(shè)置為設(shè)備存儲(chǔ)空間的比值:0.3,0.5,0.7,三個(gè)臨界值與設(shè)備的空間大小密切相關(guān),設(shè)備存儲(chǔ)空間越大,這三個(gè)臨界值就越大。
4.根據(jù)權(quán)利要求3所述的一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:三個(gè)臨界值根據(jù)空間大小動(dòng)態(tài)調(diào)整,優(yōu)先級(jí)計(jì)算的空間部分根據(jù)remain_cap動(dòng)態(tài)變化,在三個(gè)臨界值之間分為四種情況:
5.根據(jù)權(quán)利要求1所述的一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:優(yōu)先級(jí)判斷模塊根據(jù)剩余容量的相關(guān)信息以及各層級(jí)的分?jǐn)?shù),計(jì)算出各層級(jí)的優(yōu)先級(jí);計(jì)算公式為:,計(jì)算的優(yōu)先級(jí);
6.根據(jù)權(quán)利要求1所述的一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:victim選擇模塊從優(yōu)先級(jí)隊(duì)列中依次出隊(duì)選擇層級(jí)作為compaction壓縮的輸入層級(jí),確定壓縮輸入層級(jí)后,從該層級(jí)中挑選出victim?sst,并從下層中選出重疊的sst送入歸并引擎中合并排序,合并排序結(jié)束產(chǎn)生新的數(shù)據(jù)后,此前的數(shù)據(jù)被無效,從而產(chǎn)生無效數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的一種面向分區(qū)命名空間固態(tài)盤的動(dòng)態(tài)層級(jí)架構(gòu),其特征在于:數(shù)據(jù)放置模塊將合并壓縮引擎的排序新數(shù)據(jù)放置到對(duì)應(yīng)新的輸出層級(jí)中,后臺(tái)的垃圾回收操作在遷移有效數(shù)據(jù)后,也會(huì)通過數(shù)據(jù)放置模塊更新數(shù)據(jù)在lsm樹中的位置,這個(gè)位置關(guān)系即文件系統(tǒng)在日志結(jié)構(gòu)化合并樹層級(jí)中的邏輯位置與zns設(shè)備上的物理位置之間的映射關(guān)系。