孫爽,鄭波盡,胡麗君
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
無(wú)論文件中儲(chǔ)存的是工作學(xué)習(xí)文檔還是日常生活中音頻視頻的數(shù)字化文件,隨著設(shè)備中文件數(shù)量增長(zhǎng),文件都難以管理,并且文件管理又和檔案管理[1]、個(gè)人信息管理[2]、信息行為[3]、信息檢索[4]等領(lǐng)域聯(lián)系緊密.
數(shù)字內(nèi)容以文件的形式表示可追溯到20 世紀(jì)60 年代[5].這種方式已經(jīng)成功地在計(jì)算機(jī)領(lǐng)域中應(yīng)用了60 多年[6].雖然受到過(guò)質(zhì)疑[7],并被指出需要進(jìn)行改善[6],但它仍然是計(jì)算機(jī)領(lǐng)域中使用最久和最普遍的一種處理計(jì)算機(jī)數(shù)字內(nèi)容方式,比如在Windows、Mac OS、Linux、DSB、Solaris、Android、iOS、Windows Mobile等系統(tǒng)中.
文件存儲(chǔ)在目錄中,目錄系統(tǒng)具有簡(jiǎn)單、直觀和適用面廣的特點(diǎn),這使它一直沿用至今.但是目錄系統(tǒng)有其局限性,就像文獻(xiàn)[8]的名稱“Hierarchical file system are dead”所言,SELTZER 和MURPHY 早在2009 年就提到分級(jí)文件系統(tǒng)已經(jīng)不再適用于當(dāng)時(shí)[8].DINNEEN 也指出用戶會(huì)花費(fèi)大量的時(shí)間去執(zhí)行文件和文件夾的操作[9].
面對(duì)具有多個(gè)分類屬性的文件時(shí),目錄結(jié)構(gòu)的創(chuàng)建變得困難[10].具有多個(gè)分類屬性的文件在目錄系統(tǒng)中通常屬于多個(gè)子目錄,比如在某一所學(xué)校里有A、B兩個(gè)班級(jí)[圖1(a)],現(xiàn)有一份文件(inf.txt)中記錄的是關(guān)于這兩個(gè)班級(jí)的信息,在兩個(gè)班級(jí)中挑選一個(gè)存放[圖1(b)]或者兩個(gè)班級(jí)中都進(jìn)行存放[圖1(c)]是目錄系統(tǒng)中的兩種不同做法.第一種方法無(wú)法完全表述文件記錄2 個(gè)班信息的含義,第二種方式一份文件卻保存了兩份.
圖1 多分類文件舉例Fig.1 Example of multi-class files
在文件查詢上,文件的許多操作都是建立在查詢之上,比如文件修改,只有先找到目標(biāo)文件才能對(duì)文件進(jìn)行修該;文件移動(dòng)也需要先找到目標(biāo)文件再找到目標(biāo)目錄才能完成文件的移動(dòng),但是隨著文件數(shù)量的增加,文件查詢效率卻在降低.
上述問(wèn)題的原因是目錄系統(tǒng)在邏輯上是樹(shù)形結(jié)構(gòu),采用自上而下的設(shè)計(jì)哲學(xué),即先有目錄結(jié)構(gòu)再有文件,以結(jié)構(gòu)為中心來(lái)管理文件,用戶雖然可以輕松地創(chuàng)建一個(gè)類似植物學(xué)或者動(dòng)物學(xué)的分類系統(tǒng)[11],但是這種設(shè)計(jì)方式使目錄結(jié)構(gòu)的創(chuàng)建受到限制,并且查詢文件必須從指定目錄開(kāi)始,導(dǎo)致文件查詢的效率不高.
為了解決上述問(wèn)題,人們發(fā)展了以元數(shù)據(jù)為基礎(chǔ)的文件管理系統(tǒng),它將豐富的元數(shù)據(jù)與文件聯(lián)系起來(lái),使文件的多個(gè)分類屬性可以用多個(gè)元數(shù)據(jù)進(jìn)行表示,并且有比傳統(tǒng)的文件系統(tǒng)更加高效的文件檢索能力[9].BARREAU 等[12]設(shè)計(jì)了一種純?cè)獢?shù)據(jù)文件系統(tǒng),將廣泛而豐富的數(shù)據(jù)集同文件關(guān)聯(lián)起來(lái),AMES 和BOBB 等[13]提出名為L(zhǎng)iFS 的文件系統(tǒng),它將元數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)器中,用來(lái)確保用戶或者應(yīng)用程序賦予文件的屬性以及文件之間所具有的聯(lián)系;隨后AMES 又和GOKHALE 等[14]提出了一個(gè)名為QMDS 的元數(shù)據(jù)管理服務(wù),其中集成了所有文件的元數(shù)據(jù),抽象成具有節(jié)點(diǎn)和邊的圖數(shù)據(jù)模型.ALBADRI 和WATSON[11]則使用基于元數(shù)據(jù)的“TreeTags”模型并引入查詢語(yǔ)言的方式改進(jìn)文件管理系統(tǒng).而董豪宇等[15]設(shè)計(jì)了一種純用戶態(tài)的網(wǎng)絡(luò)文件系統(tǒng)RUFS(Remote userspace File System),將元數(shù)據(jù)采用基于鍵值存儲(chǔ)與blobstore的元數(shù)據(jù)協(xié)同管理,在保證元數(shù)據(jù)操作的原子性和并發(fā)性的同時(shí),使其具有更高的性能.但是這種方式需要在系統(tǒng)中附加獨(dú)立于文件系統(tǒng)的元數(shù)據(jù)管理服務(wù),導(dǎo)致出現(xiàn)這兩個(gè)系統(tǒng)難以同步.
面對(duì)上述問(wèn)題,本文基于第一性原理,以自下而上的設(shè)計(jì)哲學(xué),提出了注記文件系統(tǒng),即先有文件再向文件添加注記的方式將文件和其描述信息進(jìn)行關(guān)聯(lián),使文件目錄系統(tǒng)和元數(shù)據(jù)注記系統(tǒng)合二為一.以文件為中心,注記文件系統(tǒng)將目錄信息轉(zhuǎn)化為注記,在解決多分類文件目錄創(chuàng)建困難問(wèn)題的同時(shí)提高了文件的查詢效率.
常見(jiàn)文件系統(tǒng)有FAT、NTFS、EXFAT、EXT、HFS等,它的作用是在存儲(chǔ)設(shè)備上管理和存儲(chǔ)文件信息,文件系統(tǒng)的建立需要對(duì)文件和目錄進(jìn)行實(shí)現(xiàn),這里以EXT2為例進(jìn)行介紹.
EXT2 中文件內(nèi)容是保存在數(shù)據(jù)塊中,同一個(gè)文件系統(tǒng)中的數(shù)據(jù)塊大小相同,數(shù)據(jù)塊的大小由文件系統(tǒng)指定,一個(gè)文件所占用的空間以數(shù)據(jù)塊為單位進(jìn)行分配.EXT2 中利用索引節(jié)點(diǎn)(inode)來(lái)代表一個(gè)文件,每一個(gè)inode 都有一個(gè)唯一的整數(shù)標(biāo)識(shí)符,其中記錄文件的元數(shù)據(jù),比如文件大小、訪問(wèn)權(quán)限、時(shí)間戳、文件所占用數(shù)據(jù)塊等.
在Linux 系統(tǒng)中有一句經(jīng)典的話:一切皆是文件.不僅普通的文件和目錄,就連塊設(shè)備、管道、socket 等,也都統(tǒng)一交給文件系統(tǒng)管理.與普通文件中保存文件內(nèi)容不同,目錄作為特殊的文件,其中保存目錄項(xiàng)列表,每個(gè)目錄項(xiàng)中記錄目錄項(xiàng)的索引節(jié)點(diǎn)、名稱以及名稱長(zhǎng)度,并且每個(gè)目錄的前兩個(gè)目錄項(xiàng)都是“.”和“..”,用來(lái)代表當(dāng)前目錄和父目錄.多個(gè)目錄項(xiàng)之間關(guān)聯(lián)起來(lái),形成了目錄結(jié)構(gòu).
注記數(shù)據(jù)庫(kù)是一個(gè)被設(shè)計(jì)用于處理少量數(shù)據(jù)的數(shù)據(jù)庫(kù),它利用增量式方法為現(xiàn)實(shí)世界建模.它是一種采用自下而上設(shè)計(jì)方法,先有數(shù)據(jù)再通過(guò)為數(shù)據(jù)加注記或關(guān)聯(lián)注記的方式來(lái)存儲(chǔ)和管理數(shù)據(jù)之間的關(guān)系.注記數(shù)據(jù)庫(kù)中注記是一種對(duì)多語(yǔ)義數(shù)據(jù)的表述方法,表示用戶為檢索信息的標(biāo)注.不同于自由注記,注記數(shù)據(jù)庫(kù)中的注記用來(lái)表示復(fù)雜的數(shù)據(jù)之間的關(guān)系,實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的功能.
注記數(shù)據(jù)庫(kù)中為每個(gè)數(shù)據(jù)和注記都分配id,分別記為Did和Zid,通過(guò)將Did和Zid進(jìn)行關(guān)聯(lián)完成對(duì)數(shù)據(jù)標(biāo)注.注記數(shù)據(jù)庫(kù)中包含普通注記和識(shí)別注記兩種注記,根據(jù)被標(biāo)注數(shù)據(jù)中是否具備識(shí)別特征來(lái)判斷注記為何種注記,普通注記用于表達(dá)關(guān)系數(shù)據(jù)庫(kù)中的普通屬性,識(shí)別注記用于表達(dá)關(guān)系數(shù)據(jù)庫(kù)中的鍵屬性.對(duì)于識(shí)別注記則為被標(biāo)注數(shù)據(jù)標(biāo)識(shí),對(duì)于普通注記則將數(shù)據(jù)和識(shí)別注記進(jìn)行關(guān)聯(lián),在數(shù)據(jù)之間產(chǎn)生關(guān)聯(lián).注記數(shù)據(jù)庫(kù)在理論上和關(guān)系數(shù)據(jù)庫(kù)等價(jià),它能很大程度上提高數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的靈活性,在數(shù)據(jù)庫(kù)中保證數(shù)據(jù)之間關(guān)聯(lián)的同時(shí)保證了數(shù)據(jù)的語(yǔ)義信息.
注記是文件的描述信息,注記文件系統(tǒng)是一個(gè)被設(shè)計(jì)用來(lái)方便多分類文件存儲(chǔ)和提高文件查詢速度的文件系統(tǒng),它以元數(shù)據(jù)為基礎(chǔ),采用為文件加標(biāo)簽的形式進(jìn)行建模,使文件和注記之間建立聯(lián)系,在保證文件具有語(yǔ)義的同時(shí)讓文件能夠依靠注記進(jìn)行文件查詢.對(duì)第1節(jié)中多分類文件的例子,在注記文件系統(tǒng)下的形式如圖2,將兩個(gè)班級(jí)抽象為兩個(gè)注記,同時(shí)對(duì)文件inf.txt 進(jìn)行關(guān)聯(lián),在能很好地表達(dá)該文件所描述的信息同時(shí)又保證了文件不會(huì)重復(fù)保存.本章主要介紹注記文件系統(tǒng)的理論模型和物理實(shí)現(xiàn).
圖2 注記系統(tǒng)下多分類文件存儲(chǔ)圖Fig.2 Multi-class file storage diagram under the annotation file system
文件所在位置的各層目錄名和文件名在對(duì)文件進(jìn)行描述的作用上和注記的功能相同,可以將各層目錄名和文件名看作文件的注記,這里把目錄系統(tǒng)中文件的目錄名和文件名提取為注記,通過(guò)把文件和注記轉(zhuǎn)換到注記系統(tǒng)中的方式來(lái)介紹注記文件系統(tǒng)的邏輯模型.假設(shè)目錄系統(tǒng)存在如圖3 的文件 實(shí)例,其中file_1、file_2、file_3、file_4、file_5 和file_6 為6 個(gè)文件,A、B、C、D、E 和F 分別為其文件名,dir_1、dir_2、dir_3、dir_4和dir_5為目錄.
圖3 目錄系統(tǒng)下文件實(shí)例Fig.3 File instance under the directory system
提取文件名和目錄名作為注記,并在注記和文件之間進(jìn)行連接,轉(zhuǎn)換到注記文件系統(tǒng)中,如圖4所示,此時(shí)到注記文件系統(tǒng)的邏輯模型是一種具有注記和文件兩種節(jié)點(diǎn)的二分圖,模型的定義如下:
圖4 注記系統(tǒng)下的文件實(shí)例Fig.4 File instance under the annotation file system
G=(F,N,E).
F:文件節(jié)點(diǎn)集合,其中每個(gè)元素f代表一個(gè)文件.
N:注記節(jié)點(diǎn)集合,其中每個(gè)元素n表示一個(gè)注記.
E:E={(f,n)|f∈F,n∈N},如果文件f具有注記n,則邊(f,n)存在,否則不存在.
對(duì)于通過(guò)多個(gè)注記對(duì)文件進(jìn)行查詢的問(wèn)題可以描述為:
存在圖G=(F,N,E),求和給定注記集合M中所有元素m之間都存在邊的F節(jié)點(diǎn)集合I,且滿足?m∈M,m∈N,?i∈I,i∈F.
算法如右欄算法1,當(dāng)圖G中與M中度數(shù)最小元素之間具有連接的F節(jié)點(diǎn)的個(gè)數(shù)為x(x≤|F|),并假設(shè)這x個(gè)節(jié)點(diǎn)平均又和y(y≤|N|)個(gè)N節(jié)點(diǎn)之間有連接.此時(shí)上述算法的時(shí)間復(fù)雜度T(n)=n+x(y+1)=Θ(a×b),其中a為N節(jié)點(diǎn)的個(gè)數(shù),b為F節(jié)點(diǎn)的個(gè)數(shù).
如上一節(jié)中介紹的,在注記文件系統(tǒng)中需要記錄注記信息、文件信息以及注記和文件之間的關(guān)系信息,注記信息存儲(chǔ)方式如圖5所示,表中記錄所有的注記,并為注記分配一個(gè)索引號(hào)nid.
圖5 注記存儲(chǔ)表Fig.5 Annotation storage table
注記和文件之間是多對(duì)多的關(guān)系,即一個(gè)文件對(duì)應(yīng)多個(gè)注記,一個(gè)注記對(duì)應(yīng)多個(gè)文件.將注記索引號(hào)nid 作為注記節(jié)點(diǎn),文件的inode 號(hào)作為文件節(jié)點(diǎn),使用注記哈希表和文件哈希表分別表示上面兩種關(guān)系,注記哈希表中每個(gè)注記項(xiàng)后面跟著具有這個(gè)注記文件inode 號(hào)組成的鏈表,結(jié)構(gòu)如圖6 所示.
圖6 注記哈希表Fig.6 Annotation hash table
文件哈希表中每個(gè)文件項(xiàng)后面跟著該文件所擁有注記組成的鏈表,結(jié)構(gòu)如圖7所示.其中使用-1作為鏈表結(jié)束標(biāo)識(shí)符.
圖7 文件哈希表Fig.7 File hash table
在任何2 個(gè)目錄名都不相同的情況下,注記系統(tǒng)和目錄系統(tǒng)可相互轉(zhuǎn)化,但是前者在邏輯上是一種網(wǎng)狀結(jié)構(gòu)而后者則是樹(shù)形結(jié)構(gòu),這使得文件的操作方式不同.結(jié)構(gòu)決定性質(zhì),樹(shù)形結(jié)構(gòu)決定每次的文件查詢需要從根目錄開(kāi)始,而網(wǎng)狀結(jié)構(gòu)則需要從節(jié)點(diǎn)出發(fā),這使得文件的查詢方式也不相同.
影響文件查詢速度關(guān)鍵因素是查詢過(guò)程中需要進(jìn)行對(duì)比的次數(shù),注記文件系統(tǒng)中不同注記相關(guān)聯(lián)的文件數(shù)量不同,不同注記的排列組合,在多注記查詢中文件集合合并所需要比較的次數(shù)也將不同.為保證可比較性,注記系統(tǒng)中的文件查詢分析將目錄系統(tǒng)中文件轉(zhuǎn)換到注記系統(tǒng)中進(jìn)行,并且規(guī)定目錄系統(tǒng)中不存在兩個(gè)相同名稱的目錄,每個(gè)文件夾下的文件個(gè)數(shù)和文件名相同.
目錄結(jié)構(gòu)下常用的文件基礎(chǔ)操作有查詢、刪除、移動(dòng)、創(chuàng)建等.
(1)文件查詢.
在查詢文件上,注記的作用和目錄相同,都是用來(lái)將文件的字符串名稱映射到定位文件所需要的信息上.目錄系統(tǒng)下文件查詢使用遍歷文件的方式,層層篩選直到找到目標(biāo)文件.注記系統(tǒng)下每個(gè)注記對(duì)應(yīng)一組文件,取目標(biāo)文件所具有的注記組中每個(gè)注記對(duì)應(yīng)文件集合的交集即為查詢結(jié)果.
(2)文件刪除.
目錄系統(tǒng)中刪除文件需要?jiǎng)h除目錄項(xiàng)中記錄的同時(shí)刪除inode并回收所占用的磁盤(pán)空間.注記文件系統(tǒng)下需要?jiǎng)h除文件和文件所具有注記之間的關(guān)聯(lián),即刪除文件哈希表和注記哈希表中的記錄,同時(shí)刪除inode并回收文件所占用的磁盤(pán)空間.
(3)文件移動(dòng).
目錄系統(tǒng)中文件移動(dòng)是在目標(biāo)目錄項(xiàng)和當(dāng)前目錄項(xiàng)之間進(jìn)行修改.而在注記文件系統(tǒng)中對(duì)應(yīng)的是修改文件的注記,注記修改需要?jiǎng)h除原來(lái)注記和文件之間的關(guān)聯(lián)并創(chuàng)建新的關(guān)聯(lián),即文件哈希表和注記哈希表中鏈表數(shù)據(jù)的刪除和添加.
(4)文件創(chuàng)建.
目錄系統(tǒng)中文件創(chuàng)建需要?jiǎng)?chuàng)建文件的inode 并在目錄項(xiàng)中加入文件inode號(hào).注記文件系統(tǒng)中同樣的需要?jiǎng)?chuàng)建文件的inode,不同的是不再修改目錄項(xiàng)中的記錄而是在文件和注記之間建立關(guān)聯(lián),即在文件哈希表和注記哈希表中加入關(guān)聯(lián)信息.
為了方便計(jì)算,假設(shè)目錄系統(tǒng)下目錄深度為m每層文件夾中都具有x個(gè)文件和y個(gè)文件夾,此時(shí)目錄中一共有ym個(gè)文件夾和ym×x個(gè)文件.以遍歷文件夾的方式進(jìn)行文件查詢,對(duì)每個(gè)文件夾中文件進(jìn)行判斷直至找到目標(biāo)文件目標(biāo)文件.假設(shè)查詢文件目錄深度為n,最好情況下,每次都進(jìn)入正確的文件夾,此時(shí)的對(duì)比次數(shù)為n+1,在最壞情況下,直到最后才能查找到目標(biāo),此時(shí)文件的對(duì)比次數(shù)T(n)的計(jì)算方式如下:
當(dāng)n=1時(shí):
由式(1)、(2)歸納得出:
注記文件系統(tǒng)中每個(gè)注記都有一個(gè)與之關(guān)聯(lián)的文件集合,文件查詢的結(jié)果是取注記集合中的每個(gè)注記元素對(duì)應(yīng)文件集合的交集.注記是從目錄轉(zhuǎn)換而來(lái),順序注記文件查詢是將注記按照目錄由淺至深進(jìn)行排列,從注記文件系統(tǒng)中查詢?nèi)缓笕〗患?此時(shí),目錄深度為n的文件具有注記n+1 個(gè),查找到目標(biāo)文件的對(duì)比次數(shù)T(n)的計(jì)算方式如下:
當(dāng)n=1時(shí):
由式(4)、(5)歸納得出:
當(dāng)m=n時(shí),式(3)和式(6)相等.此時(shí)順序注記文件查詢同目錄系統(tǒng)中最壞情況下的查詢方式一樣,這是由于該方法總是從低目錄深度開(kāi)始篩選,而在注記文件系統(tǒng)中低目錄深度的注記所對(duì)應(yīng)文件的數(shù)量比高目錄深度注記對(duì)應(yīng)文件的數(shù)量多,因此這種方式會(huì)產(chǎn)生大量的文件對(duì)比.從兩種文件查詢對(duì)比次數(shù)結(jié)果可知:當(dāng)查詢文件所處位置在目錄中越深,兩種方式的查詢對(duì)比的次數(shù)也越接近.
每個(gè)注記對(duì)應(yīng)的文件個(gè)數(shù)不同,先對(duì)對(duì)應(yīng)文件少的注記進(jìn)行查詢,再在此基礎(chǔ)上對(duì)文件集合進(jìn)行取交集,這種文件查詢方式稱為非順序注記文件查詢.
假設(shè)查詢文件的目錄深度為n,它最深層目錄轉(zhuǎn)化的注記對(duì)應(yīng)的文件有ym-n個(gè),文件名注記對(duì)應(yīng)的文件有ym個(gè).當(dāng)深層目錄轉(zhuǎn)化的注記對(duì)應(yīng)的文件最少,此時(shí)查詢文件需要對(duì)比的次數(shù)為:
當(dāng)文件名轉(zhuǎn)化的注記對(duì)應(yīng)的文件最少,此時(shí)查詢文件需要對(duì)比的次數(shù)為:
顯然式(7)、(8)的結(jié)果都是要小于式(6),因此非順序注記文件查詢的方法具有更少的對(duì)比次數(shù),理論上查詢的效率也更高.
在不含有兩個(gè)名稱相同的文件夾并且每個(gè)文件夾下文件名都相同的目錄結(jié)構(gòu)下進(jìn)行文件查詢,并且將查詢結(jié)果同轉(zhuǎn)化的注記文件系統(tǒng)中文件查詢結(jié)果進(jìn)行對(duì)比,注記文件系統(tǒng)采用非順序注記文件查詢的方式查詢.
根據(jù)對(duì)比次數(shù)計(jì)算公式可見(jiàn):影響文件查詢速度的因素主要有3 個(gè),即目錄深度、每層文件數(shù)量、每層文件夾數(shù)量.針對(duì)以上3 個(gè)因素設(shè)計(jì)了3 組實(shí)驗(yàn),分別在不同目錄深度、文件夾數(shù)量和文件數(shù)量下進(jìn)行,為排除硬件的影響,均在相同的磁盤(pán)中進(jìn)行.第1組實(shí)驗(yàn)在每層目錄都有5個(gè)文件和2個(gè)文件夾,分別以目錄深度為6、8、10 和12 的情況下進(jìn)行,結(jié)果見(jiàn)表1;第2 組實(shí)驗(yàn)在每層目錄都有5個(gè)文件和目錄深度為6,分別以每層有2、3、4、5、6個(gè)文件夾的情況下進(jìn)行,結(jié)果見(jiàn)表2;第3 組實(shí)驗(yàn)在每層目錄都有2個(gè)文件夾和目錄深度為6,分別以每個(gè)文件夾下文件個(gè)數(shù)為5、10、15 和20 的情況下進(jìn)行,結(jié)果見(jiàn)表3.每組實(shí)驗(yàn)中的查詢進(jìn)行了30 次,取平均值作為實(shí)驗(yàn)結(jié)果,單位為ms,并計(jì)算方差.
表1 不同目錄深度下實(shí)驗(yàn)數(shù)據(jù)表Tab.1 Experimental data under different directory depth
表2 不同文件夾數(shù)下實(shí)驗(yàn)數(shù)據(jù)表Tab.2 Experimental data under different folder numbers
表3 不同文件夾個(gè)數(shù)下實(shí)驗(yàn)數(shù)據(jù)表Tab.3 Experimental data under different file numbers
由上面3組實(shí)驗(yàn)可見(jiàn):隨著目錄結(jié)構(gòu)變得復(fù)雜,兩種系統(tǒng)下文件的查詢速度均變慢,但總體上注記文件系統(tǒng)的查詢速度更快,注記文件系統(tǒng)文件查詢速度受每層文件夾數(shù)量和文件數(shù)量的影響較小,受目錄深度的影響較大.
實(shí)驗(yàn)是在每個(gè)文件夾下文件名稱相同的情況下進(jìn)行,但實(shí)際上目錄系統(tǒng)中很少出現(xiàn)這種極端情況,當(dāng)每個(gè)文件夾下大多數(shù)文件名不相同時(shí),文件名所轉(zhuǎn)化的注記將變?yōu)閷?duì)應(yīng)文件最少的注記,此時(shí)文件查詢需要進(jìn)行比較的次數(shù)更少,查詢速度也更為迅速.
本文指出了目錄系統(tǒng)中存在多分類文件目錄結(jié)構(gòu)創(chuàng)建困難和文件查詢效率低的問(wèn)題,分析問(wèn)題的原因是目錄系統(tǒng)采用自上而下的設(shè)計(jì)哲學(xué),以結(jié)構(gòu)為中心的方式來(lái)管理文件.以元數(shù)據(jù)為基礎(chǔ)的文件管理系統(tǒng)雖然能夠很好地解決上述問(wèn)題但是卻需要附加獨(dú)立于目錄系統(tǒng)的元數(shù)據(jù)管理服務(wù),使2個(gè)系統(tǒng)難以同步.因此本文采用自下而上的設(shè)計(jì)哲學(xué),以文件為中心,提出了注記文件系統(tǒng),先有文件,再向文件添加描述信息的方式使文件系統(tǒng)和元數(shù)據(jù)管理系統(tǒng)合二為一.同時(shí)注記文件系統(tǒng)中將目錄信息轉(zhuǎn)化為注記,將其作為管理和查詢文件的依據(jù),在解決文件多分類問(wèn)題的同時(shí)提高了文件的查詢效率.
作為一個(gè)文件系統(tǒng),注記文件系統(tǒng)并不僅限于文件的存儲(chǔ)和查詢.在云環(huán)境下,注記文件系統(tǒng)將比當(dāng)前的目錄文件系統(tǒng)具有更大的優(yōu)越性,文件的權(quán)限控制、版本控制、唯一識(shí)別、多設(shè)備同步等云原生的文件系統(tǒng)的性質(zhì)在目錄系統(tǒng)下難以實(shí)現(xiàn),或者具有很大的缺陷,而注記文件系統(tǒng)則不同,它能夠很好地滿足云環(huán)境下云原生文件系統(tǒng)的需求,這正是本文后期需要研究的內(nèi)容.