一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式文件系統(tǒng)客戶端與服務(wù)器端的交互技術(shù),特別涉及一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等信息技術(shù)的高速發(fā)展,全球數(shù)據(jù)信息總量呈現(xiàn)爆炸式增長(zhǎng)。根據(jù)IDC的統(tǒng)計(jì),每年全球的數(shù)據(jù)總量以40% -60%的速度增長(zhǎng),2011年全球數(shù)據(jù)總量為1.8ZB(1021字節(jié)),預(yù)計(jì)到2020年,將到達(dá)35ZB,因此,對(duì)海量數(shù)據(jù)存儲(chǔ)的需求日益迫切。
[0003]對(duì)于滿足存儲(chǔ)海量數(shù)據(jù)的分布式文件系統(tǒng),元數(shù)據(jù)與數(shù)據(jù)分離的結(jié)構(gòu)已成為一種主流架構(gòu),元數(shù)據(jù)和數(shù)據(jù)分別保存在專有的元數(shù)據(jù)存儲(chǔ)設(shè)備和數(shù)據(jù)存儲(chǔ)設(shè)備中,服務(wù)器端負(fù)責(zé)管理所有的元數(shù)據(jù)信息,采用帶外訪問方式,客戶端根據(jù)先獲取的元數(shù)據(jù)信息,可以直接訪問專有的數(shù)據(jù)存儲(chǔ)設(shè)備來讀取信息。
[0004]讀目錄,目的是獲取該目錄下所有的目錄項(xiàng)的名稱、索引節(jié)點(diǎn)號(hào)、類型等元數(shù)據(jù)信息,以提供給用戶該目錄下的目錄項(xiàng)列表。
[0005]目前的并行網(wǎng)絡(luò)文件系統(tǒng)(pNFS)在首次讀目錄時(shí),先在本地頁(yè)面緩存中查找保存目錄項(xiàng)信息的一頁(yè),如果本地頁(yè)面緩存中沒有,則向服務(wù)器端發(fā)送讀目錄請(qǐng)求獲取該頁(yè),等待服務(wù)器端返回給客戶端所請(qǐng)求的一頁(yè),客戶端再逐個(gè)解析該頁(yè)中的目錄項(xiàng),但是,當(dāng)網(wǎng)絡(luò)狀況不佳,客戶端首次讀有大量目錄項(xiàng)的大目錄時(shí),每次發(fā)送讀目錄請(qǐng)求只能獲取一頁(yè),一頁(yè)只能包含若干個(gè)目錄項(xiàng),導(dǎo)致讀大目錄時(shí)需要多次發(fā)送讀目錄請(qǐng)求,每發(fā)送一次讀目錄請(qǐng)求就有一次網(wǎng)絡(luò)延遲時(shí)間,多次請(qǐng)求就有多次網(wǎng)絡(luò)延遲時(shí)間,而且當(dāng)網(wǎng)絡(luò)延遲較大時(shí),請(qǐng)求獲取保存目錄項(xiàng)的一頁(yè)的時(shí)間白白浪費(fèi)在了網(wǎng)絡(luò)延遲上,尤其是在目錄下目錄項(xiàng)數(shù)量巨大的場(chǎng)景下,大量的時(shí)間浪費(fèi)在了網(wǎng)絡(luò)延遲上,增大了讀目錄操作的執(zhí)行時(shí)間。
[0006]發(fā)明專利“針對(duì)文件系統(tǒng)的基于高速網(wǎng)絡(luò)的消息傳輸框架和方法”,該發(fā)明提供一種針對(duì)文件系統(tǒng)的基于高速網(wǎng)絡(luò)的消息傳輸框架和方法。該消息傳輸框架包括:文件系統(tǒng)接口層,用于向文件系統(tǒng)層提供創(chuàng)建通信上下文、建立連接通道、創(chuàng)建操作上下文及網(wǎng)絡(luò)傳輸?shù)慕涌?;文件操作處理層,其分別與文件系統(tǒng)接口層和網(wǎng)絡(luò)協(xié)議封裝層通信,用于處理文件系統(tǒng)接口層提交的操作上下文,并提交網(wǎng)絡(luò)通信操作給網(wǎng)絡(luò)協(xié)議封裝層;網(wǎng)絡(luò)協(xié)議封裝層,其與網(wǎng)絡(luò)協(xié)議層通信,將文件操作處理層提交的網(wǎng)絡(luò)通信操作進(jìn)行封裝后通過網(wǎng)絡(luò)協(xié)議層執(zhí)行消息傳輸。該發(fā)明將文件系統(tǒng)的上層操作和InfiniBand通信操作相匹配,最大化利用高速網(wǎng)絡(luò)特性。但本發(fā)明涉及一種分布式文件系統(tǒng)客戶端與服務(wù)器端的交互技術(shù),客戶端發(fā)送一次讀目錄請(qǐng)求獲取多個(gè)頁(yè)面到本地頁(yè)面緩存,不同點(diǎn)在于該專利提出一種基于高速網(wǎng)絡(luò)的消息傳輸框架和方法,并未涉及客戶端與服務(wù)器端的交互技術(shù)。
【發(fā)明內(nèi)容】
[0007]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法及系統(tǒng)。
[0008]本發(fā)明提出一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法,包括:
[0009]步驟1,客戶端根據(jù)頁(yè)索引號(hào)在本地頁(yè)面緩存中查找保存目錄項(xiàng)的待解析頁(yè),若存在,則解析出所述待解析頁(yè)中的目錄項(xiàng)信息,將解析出的所述目錄項(xiàng)信息顯示給用戶,否則執(zhí)行步驟2 ;
[0010]所述步驟2,所述客戶端向所述服務(wù)器發(fā)送讀目錄多頁(yè)請(qǐng)求,等待所述服務(wù)器端返回給所述客戶端請(qǐng)求的所述待解析頁(yè),所述客戶端將所述待解析頁(yè)保存在本地頁(yè)面緩存中,并將解析出所述待解析頁(yè)中保存的所述目錄項(xiàng)信息顯示給用戶,其中所述待解析頁(yè)為多個(gè)頁(yè)。
[0011]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法,還包括所述客戶端逐個(gè)解析所述待解析頁(yè)中剩余的目錄項(xiàng),并逐個(gè)顯示給用戶,直到所述待解析頁(yè)中所有的目錄項(xiàng)都已讀完。
[0012]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法,若目錄下還有目錄項(xiàng)未讀,則所述頁(yè)索引號(hào)加1,所述客戶端查找所述本地頁(yè)面緩存中是否保存目錄項(xiàng)的下一頁(yè),如果有,則將解析出的所述目錄項(xiàng)信息顯示給用戶,否則,所述客戶端向所述服務(wù)器發(fā)送讀目錄多頁(yè)請(qǐng)求,等待所述服務(wù)器端返回給所述客戶端請(qǐng)求的所述待解析頁(yè),所述客戶端將所述待解析頁(yè)保存在本地頁(yè)面緩存中,并將解析出所述待解析頁(yè)中保存的所述目錄項(xiàng)信息顯示給用戶。
[0013]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法,所述客戶端同時(shí)向所述服務(wù)器請(qǐng)求獲取多個(gè)頁(yè)面。
[0014]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法,所述客戶端將所述多個(gè)頁(yè)面保存在所述本地頁(yè)面緩存。
[0015]本發(fā)明還提出一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的系統(tǒng),包括:
[0016]客戶端模塊,用于客戶端根據(jù)頁(yè)索引號(hào)在本地頁(yè)面緩存中查找保存目錄項(xiàng)的待解析頁(yè),若存在,則解析出所述待解析頁(yè)中的目錄項(xiàng)信息,將解析出的所述目錄項(xiàng)信息顯示給用戶,否則執(zhí)行服務(wù)器模塊;
[0017]所述服務(wù)器模塊,用于所述客戶端向所述服務(wù)器發(fā)送讀目錄多頁(yè)請(qǐng)求,等待所述服務(wù)器端返回給所述客戶端請(qǐng)求的所述待解析頁(yè),所述客戶端將所述待解析頁(yè)保存在本地頁(yè)面緩存中,并將解析出所述待解析頁(yè)中保存的所述目錄項(xiàng)信息顯示給用戶,其中所述待解析頁(yè)為多個(gè)頁(yè)。
[0018]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的系統(tǒng),還包括所述客戶端逐個(gè)解析所述待解析頁(yè)中剩余的目錄項(xiàng),并逐個(gè)顯示給用戶,直到所述待解析頁(yè)中所有的目錄項(xiàng)都已讀完。
[0019]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的系統(tǒng),若目錄下還有目錄項(xiàng)未讀,則所述頁(yè)索引號(hào)加1,所述客戶端查找所述本地頁(yè)面緩存中是否保存目錄項(xiàng)的下一頁(yè),如果有,則將解析出的所述目錄項(xiàng)信息顯示給用戶,否則,所述客戶端向所述服務(wù)器發(fā)送讀目錄多頁(yè)請(qǐng)求,等待所述服務(wù)器端返回給所述客戶端請(qǐng)求的所述待解析頁(yè),所述客戶端將所述待解析頁(yè)保存在本地頁(yè)面緩存中,并將解析出的所述目錄項(xiàng)信息顯示給用戶。
[0020]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的系統(tǒng),所述客戶端同時(shí)向所述服務(wù)器請(qǐng)求獲取多個(gè)頁(yè)面。
[0021]所述的分布式文件系統(tǒng)中讀目錄多頁(yè)支持的系統(tǒng),所述客戶端將所述多個(gè)頁(yè)面保存在所述本地頁(yè)面緩存。
[0022]由以上發(fā)明可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0023]本發(fā)明客戶端在首次讀目錄時(shí),發(fā)送一次請(qǐng)求獲取多個(gè)保存目錄項(xiàng)的頁(yè)面,減少了發(fā)送讀目錄請(qǐng)求的次數(shù),就減少了網(wǎng)絡(luò)延遲時(shí)間的次數(shù),從而減少了總的網(wǎng)絡(luò)延遲時(shí)間,減少了讀目錄操作的執(zhí)行時(shí)間,達(dá)到提升讀目錄操作的性能的目的。
【附圖說明】
[0024]圖1為本發(fā)明讀目錄多頁(yè)支持系統(tǒng)的示意圖;
[0025]圖2為本發(fā)明讀目錄多頁(yè)支持方法的客戶端流程示意圖;
[0026]圖3為本發(fā)明讀目錄多頁(yè)支持方法服務(wù)器端流程示意圖;
[0027]其中附圖標(biāo)記為:
[0028]步驟1/2/3/4/5/6/7 ;
[0029]步驟31/32/33/34/35/36 ;
[0030]步驟41/42/43 ;
[0031]客戶端模塊I服務(wù)器模塊2
[0032]客戶端發(fā)送讀目錄多頁(yè)請(qǐng)求子模塊11
[0033]客戶端接收讀目錄多頁(yè)請(qǐng)求返回子模塊12
[0034]客戶端多頁(yè)緩存子模塊13
[0035]客戶端多頁(yè)鏈表頁(yè)面查找子模塊14
[0036]客戶端目錄項(xiàng)解析子模塊15
[0037]客戶端目錄項(xiàng)顯示子模塊16
[0038]服務(wù)器端接收讀目錄多頁(yè)請(qǐng)求子模塊21
[0039]服務(wù)器端目錄項(xiàng)查找子模塊22
[0040]服務(wù)器端返回讀目錄多頁(yè)請(qǐng)求子模塊23
【具體實(shí)施方式】
[0041]下面說明本發(fā)明的【具體實(shí)施方式】,結(jié)合附圖對(duì)本發(fā)明提出的一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法及系統(tǒng)做詳細(xì)描述。
[0042]本發(fā)明提出了一種分布式文件系統(tǒng)中讀目錄多頁(yè)支持的方法及系統(tǒng),圖1為本發(fā)明讀目錄多頁(yè)支持系統(tǒng)示意圖,如圖1所示,該系統(tǒng)包括:
[0043]客戶端模塊1,在本地頁(yè)面緩存中查找保存目錄項(xiàng)的頁(yè)面;向服務(wù)器模塊2發(fā)送讀目錄多頁(yè)請(qǐng)求;將服務(wù)器模塊2返回的多個(gè)頁(yè)面存儲(chǔ)于客戶端本地頁(yè)面緩存中;解析頁(yè)中的目錄項(xiàng)信息;將頁(yè)中的目錄項(xiàng)顯示給用戶;;
[0044]其中,客戶端模塊還包括如下個(gè)模塊:
[0045]客戶端發(fā)送讀目錄多頁(yè)請(qǐng)求子模塊11,用于向服務(wù)器模塊發(fā)送讀目錄多頁(yè)請(qǐng)求,請(qǐng)求獲取保存目錄項(xiàng)的多個(gè)頁(yè)面;
[0046]客戶端接收讀目錄多頁(yè)請(qǐng)求返回子模塊12,用于接收服務(wù)器模塊返回讀目錄多頁(yè)請(qǐng)求的多個(gè)頁(yè)面;
[0047]客戶端多頁(yè)緩存子模塊13,用于緩存客戶端接收讀目錄多頁(yè)請(qǐng)求返回的多個(gè)頁(yè)面,保存在客戶端本地頁(yè)面緩存中;
[0048]客戶端緩存頁(yè)面查找子模塊14,用于在客戶端本地頁(yè)面緩存中查找保存目錄項(xiàng)的一頁(yè);
[0049]客戶端目錄項(xiàng)解析子模塊15,用于解析客戶端本地頁(yè)面緩存的一頁(yè)中保存的目錄項(xiàng)信息;
[0050]客戶端目錄項(xiàng)顯示子模塊16,用于向用戶逐個(gè)顯示目錄下的所有目錄項(xiàng);
[005