本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種文件系統(tǒng)數(shù)據(jù)處理方法、客戶端、服務(wù)端及系統(tǒng)。
背景技術(shù):
現(xiàn)有文件系統(tǒng)主要分為兩大部分:元數(shù)據(jù)管理、數(shù)據(jù)管理。其中,元數(shù)據(jù)的請求占文件系統(tǒng)所有請求的50%以上,所以提升元數(shù)據(jù)的請求的處理性能,可以有效提升整個文件系統(tǒng)的性能。
在多個元數(shù)據(jù)節(jié)點的系統(tǒng)里,每個元數(shù)據(jù)節(jié)點都有自己負(fù)責(zé)的目錄結(jié)構(gòu)。以兩個元數(shù)據(jù)節(jié)點(0號元數(shù)據(jù)節(jié)點和1號元數(shù)據(jù)節(jié)點)構(gòu)成的元數(shù)據(jù)集群為例,目錄結(jié)構(gòu)圖參見附圖1。文件系統(tǒng)的根目錄及目錄樹根目錄B所屬的是0號元數(shù)據(jù)節(jié)點,目錄樹根目錄A所屬的是1號元數(shù)據(jù)節(jié)點。在現(xiàn)有情況下,對于1號元數(shù)據(jù)節(jié)點負(fù)責(zé)的目錄樹根,即目錄A來說:涉及到目錄A的請求,客戶端都會先把請求發(fā)給0號元數(shù)據(jù)節(jié)點進(jìn)行查找。0號元數(shù)據(jù)節(jié)點通過判斷發(fā)現(xiàn)目錄A已不是自己負(fù)責(zé)的目錄,會給客戶端回執(zhí)告知應(yīng)該是1號元數(shù)據(jù)節(jié)點進(jìn)行請求處理??蛻舳嗽侔颜埱蟀l(fā)給1號元數(shù)據(jù)節(jié)點。1號元數(shù)據(jù)節(jié)點提供正確的響應(yīng)。此流程示意圖參見附圖2,此交互示意圖參見附圖3(其中X號元數(shù)據(jù)節(jié)點意為非0號元數(shù)據(jù)節(jié)點)。
通過圖1至圖3可以清楚地看到涉及到訪問非0號元數(shù)據(jù)節(jié)點的目錄樹根的操作時,服務(wù)端0號元數(shù)據(jù)節(jié)點實際承擔(dān)轉(zhuǎn)發(fā)請求的責(zé)任,其節(jié)點壓力相對較大;對于客戶端來說,同一個請求消息要和元數(shù)據(jù)節(jié)點通信兩次,這會大大影響整個集群性能。因此,如何優(yōu)化客戶端與服務(wù)端進(jìn)行交互時的效率,是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種文件系統(tǒng)數(shù)據(jù)處理方法、客戶端、服務(wù)端及系統(tǒng),可以在現(xiàn)有元數(shù)據(jù)集群目錄結(jié)構(gòu)下,通過減少不必要的元數(shù)據(jù)請求交互,減小系統(tǒng)壓力,達(dá)到提升文件系統(tǒng)性能的目的。
為解決上述技術(shù)問題,本發(fā)明提供一種文件系統(tǒng)數(shù)據(jù)處理方法,包括:
根據(jù)存儲的服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送所述消息請求;
接收所述目標(biāo)元數(shù)據(jù)節(jié)點提供的響應(yīng)信息。
可選的,存儲服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,包括:
在第一次與所述服務(wù)端建立鏈接時,接收所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息。
可選的,該方法還包括:
接收到所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息更新指令時,更新所述目錄結(jié)構(gòu)信息。
本發(fā)明還提供一種客戶端,包括:
目標(biāo)元數(shù)據(jù)節(jié)點確定模塊,用于根據(jù)存儲的服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
消息請求發(fā)送模塊,用于向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送所述消息請求;
響應(yīng)信息接收模塊,用于接收所述目標(biāo)元數(shù)據(jù)節(jié)點提供的響應(yīng)信息。
可選的,該客戶端還包括:
目錄結(jié)構(gòu)信息接收模塊,用于在第一次與所述服務(wù)端建立鏈接時,接收所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息。
可選的,該客戶端還包括:
目錄結(jié)構(gòu)信息更新模塊,用于接收到所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息更新指令時,更新所述目錄結(jié)構(gòu)信息。
本發(fā)明還提供一種文件系統(tǒng)數(shù)據(jù)處理方法,包括:
向客戶端發(fā)送構(gòu)造的目錄結(jié)構(gòu)信息,使所述客戶端根據(jù)所述目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
接收所述客戶端向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送的所述消息請求;
向所述客戶端發(fā)送所述目標(biāo)元數(shù)據(jù)節(jié)點根據(jù)所述消息請求提供的響應(yīng)信息。
可選的,該方法還包括:
當(dāng)目錄結(jié)構(gòu)信息更新時,向所述客戶端發(fā)送目錄結(jié)構(gòu)信息更新指令,使所述客戶端根據(jù)所述更新指令更新所述目錄結(jié)構(gòu)信息。
本發(fā)明還提供一種服務(wù)端,包括:
目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送模塊,用于向客戶端發(fā)送構(gòu)造的目錄結(jié)構(gòu)信息,使所述客戶端根據(jù)所述目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
元數(shù)據(jù)節(jié)點,用于接收所述客戶端發(fā)送的所述消息請求,并向所述客戶端發(fā)送根據(jù)所述消息請求提供的響應(yīng)信息。
本發(fā)明還提供一種文件系統(tǒng)數(shù)據(jù)處理系統(tǒng),包括:如上述任一項所述的客戶端和如上述所述的服務(wù)端。
本發(fā)明所提供的一種文件系統(tǒng)數(shù)據(jù)處理方法,包括:根據(jù)存儲的服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送所述消息請求;接收所述目標(biāo)元數(shù)據(jù)節(jié)點提供的響應(yīng)信息;
可見,該方法中客戶端可以直接向目錄樹根所屬的元數(shù)據(jù)節(jié)點(即消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點)發(fā)送請求,則客戶端和服務(wù)端只會交互一次,進(jìn)而提升整個文件系統(tǒng)的性能;即可以在現(xiàn)有元數(shù)據(jù)集群目錄結(jié)構(gòu)下,通過減少不必要的元數(shù)據(jù)請求交互,減小系統(tǒng)壓力,達(dá)到提升文件系統(tǒng)性能的目的。本發(fā)明還提供了一種文件系統(tǒng)數(shù)據(jù)處理系統(tǒng)、服務(wù)端和客戶端,具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為兩個元數(shù)據(jù)節(jié)點構(gòu)成的元數(shù)據(jù)集群的目錄結(jié)構(gòu)示意圖;
圖2為現(xiàn)有技術(shù)中客戶端發(fā)送請求時選擇元數(shù)據(jù)節(jié)點和服務(wù)端提供響應(yīng)的流程示意圖;
圖3為現(xiàn)有技術(shù)中對目錄樹根操作的客戶端與服務(wù)端交互示意圖;
圖4為本發(fā)明實施例提的一種文件系統(tǒng)數(shù)據(jù)處理方法的流程圖;
圖5為本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理方法的交互示意圖;
圖6為本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理方法的交互的流程示意圖;
圖7為本發(fā)明實施例提的客戶端的結(jié)構(gòu)框圖;
圖8為本發(fā)明實施例提的另一文件系統(tǒng)數(shù)據(jù)處理方法的流程圖;
圖9為本發(fā)明實施例提的服務(wù)端的結(jié)構(gòu)框圖;
圖10為本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)框圖。
具體實施方式
本發(fā)明的核心是提供一種文件系統(tǒng)數(shù)據(jù)處理方法、客戶端、服務(wù)端及系統(tǒng),可以在現(xiàn)有元數(shù)據(jù)集群目錄結(jié)構(gòu)下,通過減少不必要的元數(shù)據(jù)請求交互,減小系統(tǒng)壓力,達(dá)到提升文件系統(tǒng)性能的目的。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
請參考圖4,圖4為本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理方法的流程圖;該方法可以包括:
S100、根據(jù)存儲的服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
S110、向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送所述消息請求;
S120、接收所述目標(biāo)元數(shù)據(jù)節(jié)點提供的響應(yīng)信息。
具體的,本實施例中目錄結(jié)構(gòu)信息包含各個元數(shù)據(jù)節(jié)點對應(yīng)的目錄樹根信息。因此,當(dāng)客戶端需要進(jìn)行消息請求時,可以根據(jù)消息請求對應(yīng)的目錄樹根,查找目錄結(jié)構(gòu)信息確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點。即客戶端在目錄樹根下進(jìn)行IO操作,根據(jù)目錄結(jié)構(gòu)信息準(zhǔn)確獲取目錄樹根所屬的目標(biāo)元數(shù)據(jù)節(jié)點。
這里的元數(shù)據(jù)節(jié)點數(shù)量至少為兩個即元數(shù)據(jù)集群,兩個及以上數(shù)量的元數(shù)據(jù)節(jié)點即構(gòu)成元數(shù)據(jù)集群。本實施例并不限定元數(shù)據(jù)節(jié)點的數(shù)量。
本實施例中當(dāng)客戶端需要對目錄樹根操作時,首先通過查找目錄結(jié)構(gòu)信息,確定該目錄樹根操作所屬的元數(shù)據(jù)節(jié)點即目標(biāo)元數(shù)據(jù)節(jié)點。直接向目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送消息請求。可以省去文件系統(tǒng)根目錄所屬的元數(shù)據(jù)節(jié)點承擔(dān)轉(zhuǎn)發(fā)請求的責(zé)任,即減小了該節(jié)點的數(shù)據(jù)壓力,又減少了服務(wù)端和客戶端數(shù)據(jù)一次目錄樹根操作的交互次數(shù)。即客戶端直接向目錄樹根所屬的目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送請求,并接收該目標(biāo)元數(shù)據(jù)節(jié)點返回的響應(yīng)信息;即客戶端和服務(wù)端只會交互一次,進(jìn)而提升整個文件系統(tǒng)的性能。文件系統(tǒng)數(shù)據(jù)處理方法的交互示意圖參見附圖5。其中,圖5中的X號元數(shù)據(jù)節(jié)點即為客戶端根據(jù)目錄結(jié)構(gòu)信息確定的目標(biāo)元數(shù)據(jù)節(jié)點。
本實施例適用于可以支持多個元數(shù)據(jù)節(jié)點的文件系統(tǒng),這里的文件系統(tǒng)可以是云存儲系統(tǒng)、分布式文件系統(tǒng)等。本實施例并不對文件系統(tǒng)的形式進(jìn)行限定。適用于支持元數(shù)據(jù)集群的各類文件系統(tǒng)。
進(jìn)一步由于客戶端存儲的服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,因此可以減少數(shù)據(jù)交互次數(shù),提升文件系統(tǒng)性能。因此客戶端需要接收服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息。為了提高目錄結(jié)構(gòu)信息的利用率,優(yōu)選的,在客戶端第一次與所述服務(wù)端建立鏈接時,接收所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息。這樣從客戶端進(jìn)入該文件系統(tǒng)時就可以采用本實施例中的方式進(jìn)行數(shù)據(jù)處理?;蛘呤钱?dāng)服務(wù)端完成目錄結(jié)構(gòu)信息的構(gòu)造時,就進(jìn)行目錄結(jié)構(gòu)信息的同步。即在元數(shù)據(jù)集群構(gòu)造目錄結(jié)構(gòu)時,與服務(wù)端鏈接的客戶端同步保存構(gòu)造的目錄結(jié)構(gòu)信息。如果目錄結(jié)構(gòu)信息已完成建立,新加入的客戶端會在與服務(wù)端建立鏈接的過程中,獲取到目錄結(jié)構(gòu)信息。
請參考圖6,舉例說明該文件系統(tǒng)數(shù)據(jù)處理過程:
客戶端在目錄樹根下進(jìn)行IO操作,若IO操作中存在涉及目錄樹根的消息請求時,準(zhǔn)確獲取目錄樹根(即目錄)所屬的元數(shù)據(jù)節(jié)點(即目標(biāo)元數(shù)據(jù)節(jié)點),向目錄所屬元數(shù)據(jù)節(jié)點發(fā)送請求,所屬元數(shù)據(jù)節(jié)點給客戶端提供響應(yīng)。
基于上述技術(shù)方案,本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理方法,能夠在現(xiàn)有元數(shù)據(jù)集群目錄結(jié)構(gòu)下,通過減少不必要的元數(shù)據(jù)請求交互,減小系統(tǒng)壓力,達(dá)到提升文件系統(tǒng)性能的目的。
由于目錄結(jié)構(gòu)信息的準(zhǔn)確性直接影響到后續(xù)服務(wù)端和客戶端數(shù)據(jù)交互的準(zhǔn)確性。該目錄結(jié)構(gòu)信息在服務(wù)端并不是一成不變的,會根據(jù)文件系統(tǒng)的變化發(fā)生對應(yīng)改變。例如當(dāng)文件系統(tǒng)增加元數(shù)據(jù)節(jié)點或者刪除元數(shù)據(jù)節(jié)點時,該系統(tǒng)對應(yīng)的目錄結(jié)構(gòu)信息就會發(fā)生改變。因此為了保證該實施例進(jìn)行數(shù)據(jù)處理的準(zhǔn)確性和可靠性,需要在服務(wù)端的目錄結(jié)構(gòu)信息發(fā)生變化時,及時使其對應(yīng)的或者與服務(wù)端建立鏈接關(guān)系的客戶端更新目錄結(jié)構(gòu)信息。具體更新操作可以是根據(jù)更新指令更新所述目錄結(jié)構(gòu)信息;或者建立數(shù)據(jù)同步關(guān)系,當(dāng)服務(wù)端目錄結(jié)構(gòu)信息發(fā)生變化同步的客戶端對應(yīng)改變。本實施例并不限定具體的更新過程?;谏鲜鰧嵤├摲椒ㄟ€可以包括:接收到所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息更新指令時,更新所述目錄結(jié)構(gòu)信息。
具體的,當(dāng)服務(wù)端更新目錄結(jié)構(gòu)信息時,即向客戶端發(fā)送目錄結(jié)構(gòu)信息更新指令,客戶端根據(jù)更新指令更新所述目錄結(jié)構(gòu)信息。這里更新指令可以僅僅為一個觸發(fā)指令,也可以是更新指令中包含有目錄結(jié)構(gòu)信息中變化部分的內(nèi)容。因此,本實施例并不對更新指令的內(nèi)容進(jìn)行限定。
基于上述技術(shù)方案,本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理方法,該方法通過客戶端準(zhǔn)確查找目錄或文件所屬元數(shù)據(jù)節(jié)點,使客戶端與服務(wù)端所屬的元數(shù)據(jù)節(jié)點進(jìn)行準(zhǔn)確交互,不但減輕0號元數(shù)據(jù)節(jié)點(承擔(dān)轉(zhuǎn)發(fā)請求的責(zé)任的元數(shù)據(jù)節(jié)點)的壓力,而且減少服務(wù)端和客戶端消息通信次數(shù),有效提升文件系統(tǒng)性能。
下面對本發(fā)明實施例提供的文件系統(tǒng)數(shù)據(jù)處理客戶端、服務(wù)端及系統(tǒng)進(jìn)行介紹,下文描述的文件系統(tǒng)數(shù)據(jù)處理客戶端、服務(wù)端及系統(tǒng)與上文描述的文件系統(tǒng)數(shù)據(jù)處理方法可相互對應(yīng)參照。
請參考圖7,圖7為本發(fā)明實施例提的客戶端的結(jié)構(gòu)框圖;該客戶端可以包括:
目標(biāo)元數(shù)據(jù)節(jié)點確定模塊101,用于根據(jù)存儲的服務(wù)端構(gòu)造的目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
消息請求發(fā)送模塊102,用于向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送所述消息請求;
響應(yīng)信息接收模塊103,用于接收所述目標(biāo)元數(shù)據(jù)節(jié)點提供的響應(yīng)信息。
基于上述實施例,該客戶端還可以包括:
目錄結(jié)構(gòu)信息接收模塊,用于在第一次與所述服務(wù)端建立鏈接時,接收所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息。
基于上述任意實施例,該客戶端還可以包括:
目錄結(jié)構(gòu)信息更新模塊,用于接收到所述服務(wù)端發(fā)送的目錄結(jié)構(gòu)信息更新指令時,更新所述目錄結(jié)構(gòu)信息。
請參考圖8,圖8為本發(fā)明實施例提的另一文件系統(tǒng)數(shù)據(jù)處理方法的流程圖;該方法可以包括:
S200、向客戶端發(fā)送構(gòu)造的目錄結(jié)構(gòu)信息,使所述客戶端根據(jù)所述目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
S210、接收所述客戶端向所述目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送的所述消息請求;
S220、向所述客戶端發(fā)送所述目標(biāo)元數(shù)據(jù)節(jié)點根據(jù)所述消息請求提供的響應(yīng)信息。
基于上述實施例,該方法還可以包括:
當(dāng)目錄結(jié)構(gòu)信息更新時,向所述客戶端發(fā)送目錄結(jié)構(gòu)信息更新指令,使所述客戶端根據(jù)所述更新指令更新所述目錄結(jié)構(gòu)信息。
請參考圖9,圖9為本發(fā)明實施例提的服務(wù)端的結(jié)構(gòu)框圖;該服務(wù)端可以包括:
目標(biāo)元數(shù)據(jù)節(jié)點發(fā)送模塊201,用于向客戶端發(fā)送構(gòu)造的目錄結(jié)構(gòu)信息,使所述客戶端根據(jù)所述目錄結(jié)構(gòu)信息,確定消息請求所屬的目標(biāo)元數(shù)據(jù)節(jié)點;
元數(shù)據(jù)節(jié)點202,用于接收所述客戶端發(fā)送的所述消息請求,并向所述客戶端發(fā)送根據(jù)所述消息請求提供的響應(yīng)信息。
基于上述實施例,該服務(wù)端還可以包括:
更新指令發(fā)送模塊,用于當(dāng)目錄結(jié)構(gòu)信息更新時,向所述客戶端發(fā)送目錄結(jié)構(gòu)信息更新指令,使所述客戶端根據(jù)所述更新指令更新所述目錄結(jié)構(gòu)信息。
請參考圖10,圖10為本發(fā)明實施例提的文件系統(tǒng)數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)框圖;該系統(tǒng)可以包括:如上述任意實施例所述的客戶端100和如上述任意實施例所述的服務(wù)端200。
說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統(tǒng)而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以計算機(jī)軟件或者計算機(jī)軟硬件的結(jié)合來實現(xiàn)。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
以上對本發(fā)明所提供的文件系統(tǒng)數(shù)據(jù)處理方法、客戶端、服務(wù)端及系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。