欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)方法及裝置

文檔序號(hào):40529028發(fā)布日期:2024-12-31 13:40閱讀:16來源:國(guó)知局
基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)方法及裝置

本發(fā)明涉及命名空間管理,特別涉及一種基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)方法及裝置。


背景技術(shù):

1、命名空間是文件系統(tǒng)的對(duì)上層提供的訪問文件元數(shù)據(jù)的接口,負(fù)責(zé)將具有可讀性的、由用戶定義的文件標(biāo)識(shí)符轉(zhuǎn)換為計(jì)算機(jī)可識(shí)別的存儲(chǔ)地址。在命名空間中,每個(gè)文件都擁有一個(gè)唯一的名字或者路徑,應(yīng)用程序可以使用這些標(biāo)識(shí)符訪問文件的元數(shù)據(jù),而無需知道底層具體的存儲(chǔ)細(xì)節(jié)。

2、文件系統(tǒng)命名空間的一種經(jīng)典組織方式是基于目錄樹實(shí)現(xiàn)的層級(jí)結(jié)構(gòu),如圖1所示。在目錄樹中,所有的文件被分組到不同的目錄中,而一個(gè)目錄同時(shí)也可以包含另一個(gè)目錄(后者被稱作子目錄)。在目錄樹的頂部是一個(gè)被稱作“根目錄”的頂級(jí)目錄,作為整個(gè)命名空間的起始點(diǎn),所有其余的文件和子目錄則嵌套于其下。在查找某個(gè)文件時(shí),文件系統(tǒng)會(huì)從根目錄開始逐層搜索,直至找到位于葉節(jié)點(diǎn)上的目標(biāo)文件,查找過程中所有節(jié)點(diǎn)(根目錄、子目錄和目標(biāo)文件)的名字連接在一起就構(gòu)成了該文件的“全路徑”。

3、隨著對(duì)文件系統(tǒng)性能需求的變化,一種基于全路徑索引實(shí)現(xiàn)的扁平結(jié)構(gòu)命名空間被設(shè)計(jì)出來,如圖2所示。與層級(jí)結(jié)構(gòu)命名空間最為顯著的區(qū)別是,扁平結(jié)構(gòu)命名空間并不對(duì)文件進(jìn)行分組,所有的文件都處于相同的單層級(jí)空間里,并使用“鍵-值”對(duì)的方式進(jìn)行管理。其中“鍵”為文件的全路徑,而“值”為文件的元數(shù)據(jù)或元數(shù)據(jù)的存儲(chǔ)地址。在鍵值存儲(chǔ)系統(tǒng)中,需要通過一個(gè)索引結(jié)構(gòu)來將“鍵”翻譯為對(duì)應(yīng)的“值”,常見的索引結(jié)構(gòu)包括:b+樹、哈希表、基樹(radix?tree)等。

4、與層級(jí)結(jié)構(gòu)命名空間相比,扁平結(jié)構(gòu)命名空間查找單個(gè)文件的效率更高。因?yàn)樵诒馄浇Y(jié)構(gòu)命名空間中,所有文件都位于相同的最頂層,而在層級(jí)結(jié)構(gòu)命名空間中,不同的文件可能位于不同深度的存儲(chǔ)層級(jí)中。但是扁平結(jié)構(gòu)命名空間的缺陷在于移動(dòng)多個(gè)文件(如目錄移動(dòng))時(shí)效率極為低下,其根本原因在于扁平結(jié)構(gòu)命名空間中每個(gè)文件都是一個(gè)單獨(dú)的個(gè)體,因此需要逐個(gè)進(jìn)行移動(dòng)操作,而在層級(jí)結(jié)構(gòu)命名空間中,相關(guān)文件通過目錄被分組到一起,因此只需通過移動(dòng)單個(gè)目錄就能夠?qū)崿F(xiàn)同時(shí)對(duì)多個(gè)文件的移動(dòng)。

5、圖3和圖4分別展示了在層級(jí)結(jié)構(gòu)命名空間和扁平結(jié)構(gòu)命名空間中完成一次目錄移動(dòng)操作的示例。在層級(jí)結(jié)構(gòu)命名空間中,目錄移動(dòng)操作分為3個(gè)步驟:(1)找到需要移動(dòng)的目標(biāo)目錄;(2)將目標(biāo)目錄從其上層目錄中移除;(3)將目標(biāo)目錄添加到指定的新上層目錄中,整個(gè)過程只涉及到一次移動(dòng)操作。在扁平結(jié)構(gòu)命名空間中,目錄移動(dòng)操作首先也需要完成一次和層級(jí)結(jié)構(gòu)命名空間一樣的對(duì)于目標(biāo)目錄自身的移動(dòng),隨后逐個(gè)將目標(biāo)目錄下的文件移動(dòng)到新的位置:(1)確定目標(biāo)目錄下的所有文件的范圍;(2)找到范圍中的第一個(gè)文件;(3)將該文件從舊位置中移除;(4)將該文件添加到新的位置;(5)對(duì)范圍中的下一個(gè)文件執(zhí)行步驟(2)、(3)、(4)直至范圍中的所有文件都被移動(dòng)到了新位置。從理論上分析,對(duì)于一個(gè)包含n個(gè)文件的目錄,在層級(jí)結(jié)構(gòu)命名空間中移動(dòng)該目錄的時(shí)間復(fù)雜度僅為o(1),而在扁平結(jié)構(gòu)命名空間中移動(dòng)該目錄的時(shí)間復(fù)雜度卻高達(dá)o(n)。在具體的實(shí)驗(yàn)分析中,也證實(shí)了扁平結(jié)構(gòu)命名空間的目錄移動(dòng)操作效率低下的問題。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)中扁平結(jié)構(gòu)命名空間的目錄移動(dòng)操作效率低下的缺陷,提出一種基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)方法及裝置,能夠提高基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)的實(shí)際性能和可用性。

2、本發(fā)明采用如下技術(shù)方案:

3、一方面,一種基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)方法,其特征在于,包括:

4、s1,在接收到應(yīng)用程序發(fā)送的目錄移動(dòng)操作指令后,只完成目標(biāo)目錄自身的位置移動(dòng),延遲目標(biāo)目錄下文件和子目錄的移動(dòng),記錄本次操作的相關(guān)參數(shù),并更新最長(zhǎng)舊目錄名前綴;其中,本次操作的相關(guān)參數(shù)包括移動(dòng)前的舊目錄名和移動(dòng)后的新目錄名;所述最長(zhǎng)舊目錄名前綴為將存放有舊目錄名的所有葉節(jié)點(diǎn)通過鏈表的方式組織到一起并維護(hù)所有舊目錄名的公共最長(zhǎng)前綴;

5、s2,在接收到應(yīng)用程序發(fā)送的文件元數(shù)據(jù)訪問指令后,基于最長(zhǎng)舊目錄名前綴查找匹配的結(jié)構(gòu),將訪問請(qǐng)求重定位到未被移動(dòng)的文件或子目錄的正確存儲(chǔ)位置;在完成重新定位后,根據(jù)移動(dòng)前的舊目錄名和移動(dòng)后的新目錄名完成未被移動(dòng)的文件或子目錄的移動(dòng)。

6、優(yōu)選的,在接收到目錄移動(dòng)操作指令后,還包括:

7、為本次目錄移動(dòng)操作指令設(shè)置一個(gè)定時(shí)器并啟動(dòng),當(dāng)經(jīng)過預(yù)先設(shè)定好的時(shí)間后,后臺(tái)線程檢查該目錄移動(dòng)是否已經(jīng)全部完成,如果未完成,對(duì)所有還未被移動(dòng)的文件執(zhí)行移動(dòng)操作,避免這些文件的移動(dòng)被無限制地延遲下去;

8、目標(biāo)目錄自身的移動(dòng)操作完成后,向應(yīng)用程序反饋本次目錄移動(dòng)操作已經(jīng)完成。

9、優(yōu)選的,所述的基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)方法,還包括:

10、目標(biāo)目錄移動(dòng)過程中,將舊目錄名和新目錄名存儲(chǔ)至內(nèi)存中的壓縮前綴樹;其中,壓縮前綴樹的單條路徑上的所有中間節(jié)點(diǎn)的內(nèi)容組合起來構(gòu)成了一個(gè)新目錄名,而葉節(jié)點(diǎn)上存放了新目錄名對(duì)應(yīng)的舊目錄名。

11、優(yōu)選的,所述s2,具體包括:

12、s21,在接收到應(yīng)用程序發(fā)送的文件元數(shù)據(jù)訪問指令后,先將參數(shù)全路徑與最長(zhǎng)舊目錄名前綴進(jìn)行匹配,如果匹配失敗,轉(zhuǎn)s23;如果匹配成功,轉(zhuǎn)s22;

13、s22,將參數(shù)全路徑與所有舊目錄名進(jìn)行匹配,如果匹配失敗,則使用參數(shù)全路徑在命名空間中查找,轉(zhuǎn)s23;如果匹配成功,則檢查參數(shù)全路徑和舊目錄名的長(zhǎng)度是否相等,如果不相等,則向應(yīng)用程序返回該文件不存在;如果相等,則先完成舊目錄名對(duì)應(yīng)的整個(gè)目錄移動(dòng)操作,再轉(zhuǎn)s23;

14、s23,使用參數(shù)全路徑在命名空間中查找,如果查找成功,則向應(yīng)用程序返回目標(biāo)文件的元數(shù)據(jù)信息;如果查找不成功,轉(zhuǎn)s24;

15、s24,將參數(shù)全路徑與所有新目錄名進(jìn)行匹配,如果匹配不成功,則向應(yīng)用程序返回該文件不存在;如果匹配成功,則完成該文件的移動(dòng)操作,轉(zhuǎn)s25;

16、s25,將參數(shù)全路徑中的匹配部分即新目錄名替換為對(duì)應(yīng)的舊目錄名,從而獲得文件在發(fā)生目錄移動(dòng)操作前的原始全路徑;使用原始全路徑,在命名空間中找到文件,將該文件從舊位置上移除,并添加到參數(shù)全路徑所對(duì)應(yīng)的新位置上。

17、另一方面,一種基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)目錄移動(dòng)裝置,包括:

18、目標(biāo)目錄移動(dòng)模塊,用于在接收到應(yīng)用程序發(fā)送的目錄移動(dòng)操作指令后,只完成目標(biāo)目錄自身的位置移動(dòng),延遲目標(biāo)目錄下文件和子目錄的移動(dòng),記錄本次操作的相關(guān)參數(shù),并更新最長(zhǎng)舊目錄名前綴;其中,本次操作的相關(guān)參數(shù)包括舊目錄名和新目錄名;所述最長(zhǎng)舊目錄名前綴為將存放有舊目錄名的所有葉節(jié)點(diǎn)通過鏈表的方式組織到一起并維護(hù)所有舊目錄名的公共最長(zhǎng)前綴;

19、延時(shí)執(zhí)行移動(dòng)模塊,用于在接收到應(yīng)用程序發(fā)送的文件元數(shù)據(jù)訪問指令后,基于最長(zhǎng)舊目錄名前綴查找匹配的結(jié)構(gòu),將訪問請(qǐng)求重定位到未被移動(dòng)的文件或子目錄的正確存儲(chǔ)位置;在完成重新定位后,根據(jù)移動(dòng)前的舊目錄名和移動(dòng)后的新目錄名完成未被移動(dòng)的文件或子目錄的移動(dòng)。

20、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:

21、本發(fā)明在接收到應(yīng)用程序發(fā)送的目錄移動(dòng)操作指令后,只完成目標(biāo)目錄自身的位置移動(dòng),在接收到應(yīng)用程序發(fā)送的文件元數(shù)據(jù)訪問指令后,先完成文件/子目錄重定位,然后實(shí)現(xiàn)文件/子目錄的移動(dòng),實(shí)現(xiàn)把整個(gè)目錄的移動(dòng)開銷均攤到每一次的文件訪問操作中,能夠有效降低基于扁平結(jié)構(gòu)命名空間的文件系統(tǒng)的目錄移動(dòng)操作的響應(yīng)延遲,并同時(shí)使得應(yīng)用程序能夠更加充分地利用系統(tǒng)資源,從而提高系統(tǒng)整體的吞吐率,更加完善了文件系統(tǒng)命名空間技術(shù)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
资阳市| 长治县| 凤冈县| 亚东县| 扶余县| 延川县| 慈利县| 虎林市| 高邮市| 社旗县| 盐山县| 平和县| 景洪市| 惠水县| 石棉县| 阿拉尔市| 勃利县| 澎湖县| 大城县| 清流县| 客服| 西安市| 融水| 安塞县| 澄江县| 沧州市| 高淳县| 耒阳市| 栖霞市| 河南省| 英超| 临潭县| 韩城市| 顺昌县| 芷江| 玛多县| 河池市| 西峡县| 武安市| 德钦县| 濮阳县|