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