一種獲取文件數(shù)據(jù)的方法、系統(tǒng)和應(yīng)用服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云存儲和分布式技術(shù)領(lǐng)域,具體涉及一種獲取文件數(shù)據(jù)的方法、系統(tǒng)和應(yīng)用服務(wù)器。
【背景技術(shù)】
[0002]云存儲中保存的文件數(shù)是海量的,對于海量文件的快速查詢和獲取,是云存儲系統(tǒng)應(yīng)用中面臨的一項重大挑戰(zhàn)。
[0003]為了實現(xiàn)數(shù)據(jù)的快速查詢和獲取,通常的云存儲系統(tǒng)會使用緩存技術(shù)來加速文件的訪問和定位。
[0004]任何文件系統(tǒng)中的數(shù)據(jù)分為數(shù)據(jù)和元數(shù)據(jù)。數(shù)據(jù)是指普通文件中的實際數(shù)據(jù),而元數(shù)據(jù)指用來描述一個文件的特征的系統(tǒng)數(shù)據(jù),諸如訪問權(quán)限、文件擁有者以及文件數(shù)據(jù)塊的分布信息等等。在集群文件系統(tǒng)中,分布信息包括文件在磁盤上的位置以及磁盤在集群中的位置。用戶需要操作一個文件必須首先得到它的元數(shù)據(jù),才能定位到文件的位置并且得到文件的內(nèi)容或相關(guān)屬性。
[0005]因此,應(yīng)用側(cè)進行文件的查詢,先要到云存儲所在的元數(shù)據(jù)服務(wù)器查詢文件所在的位置信息,也就是文件的元數(shù)據(jù),由于在云存儲中文件是按照對象進行存儲的,所以一個文件可能會返回一個或者多個的對象元數(shù)據(jù)信息;在得到對象的元數(shù)據(jù)信息后,應(yīng)用側(cè)的客戶端會向?qū)ο笏诘膶ο蠓?wù)器發(fā)起讀取請求,并得到對象數(shù)據(jù)。
[0006]這種方式下,對于頻繁進行查詢的系統(tǒng)來講,尤其是大數(shù)據(jù)量的數(shù)據(jù)訪問,由于應(yīng)用側(cè)需要對云存儲所在的元數(shù)據(jù)服務(wù)器和對象服務(wù)器的緩存進行頻繁的遠程調(diào)用和數(shù)據(jù)傳輸,會對元數(shù)據(jù)服務(wù)器和對象服務(wù)器產(chǎn)生壓力,影響應(yīng)用側(cè)數(shù)據(jù)的訪問。
[0007]在云存儲系統(tǒng)中,如何進一步優(yōu)化文件元數(shù)據(jù)和文件數(shù)據(jù)的訪問和使用,提升云存儲對外服務(wù)的性能,是目前云存儲系統(tǒng)應(yīng)用中迫切需要解決的問題。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術(shù)問題是對云存儲系統(tǒng)的頻繁讀取操作,增加了對云存儲系統(tǒng)中各個服務(wù)器的壓力。
[0009]根據(jù)本發(fā)明一方面,提出一種獲取文件數(shù)據(jù)的應(yīng)用服務(wù)器,包括:
[0010]云存儲客戶端,用于接收應(yīng)用程序獲取文件數(shù)據(jù)的請求,并將所述請求轉(zhuǎn)發(fā)給本地緩存接口,以及從緩存存取模塊獲取文件數(shù)據(jù),并返回給所述應(yīng)用程序;
[0011]本地緩存接口,用于接收所述云存儲客戶端發(fā)送的所述獲取文件數(shù)據(jù)的請求,并轉(zhuǎn)發(fā)給緩存控制模塊;
[0012]緩存控制模塊,用于接收所述本地緩存接口發(fā)送的所述獲取文件數(shù)據(jù)的請求,并查找是否本地已緩存所述文件數(shù)據(jù),如果已緩存,則通知緩存存取模塊讀取所述文件數(shù)據(jù);
[0013]緩存存取模塊,用于根據(jù)所述緩存控制模塊的通知,讀取所述文件數(shù)據(jù),并返回給所述云存儲客戶端。
[0014]進一步,所述緩存控制模塊用于在本地未緩存所述文件數(shù)據(jù)時,根據(jù)從管理平臺獲取的列表,查找是否在列表中的其他應(yīng)用服務(wù)器中緩存所述文件數(shù)據(jù),如果其他應(yīng)用服務(wù)器已緩存,則向其發(fā)送所述獲取文件數(shù)據(jù)的請求;
[0015]所述緩存存取模塊用于接收其他應(yīng)用服務(wù)器返回的所述文件數(shù)據(jù),并返回給所述云存儲客戶端。
[0016]進一步,所述本地緩存接口用于接收其他服務(wù)器的本地緩存接口發(fā)送的獲取文件數(shù)據(jù)的請求,并轉(zhuǎn)發(fā)給所述緩存控制模塊;
[0017]所述緩存控制模塊用于接收所述本地緩存接口發(fā)送的獲取文件數(shù)據(jù)的請求,并通知緩存存取模塊讀取該文件數(shù)據(jù);
[0018]所述緩存存取模塊用于根據(jù)所述緩存控制模塊的通知,讀取該文件數(shù)據(jù),并返回給請求獲取該文件數(shù)據(jù)的其他服務(wù)器的緩存存取模塊;
[0019]其中,該其他應(yīng)用服務(wù)器在本地未緩存該文件數(shù)據(jù),并根據(jù)從管理平臺獲取的列表,查找到緩存該文件數(shù)據(jù)的應(yīng)用服務(wù)器,則向所述本地緩存接口發(fā)送獲取文件數(shù)據(jù)的請求。
[0020]進一步,所述緩存控制模塊用于在所有應(yīng)用服務(wù)器都未緩存所述文件數(shù)據(jù)時,向所述云存儲客戶端返回未找到的通知;
[0021]所述云存儲客戶端向云存儲系統(tǒng)發(fā)送所述獲取文件數(shù)據(jù)的請求,并將獲取的所述文件數(shù)據(jù)返回給所述應(yīng)用程序。
[0022]根據(jù)本發(fā)明一方面,提出一種獲取文件數(shù)據(jù)的系統(tǒng),包括至少一個上述任一所述應(yīng)用服務(wù)器。
[0023]進一步,還包括:
[0024]管理平臺,用于從多個所述應(yīng)用服務(wù)器獲取其緩存的文件數(shù)據(jù)以及文件元數(shù)據(jù),形成所述應(yīng)用服務(wù)器緩存文件數(shù)據(jù)的信息列表。
[0025]根據(jù)本發(fā)明一方面,提出一種獲取文件數(shù)據(jù)的方法,包括:
[0026]應(yīng)用服務(wù)器根據(jù)獲取文件數(shù)據(jù)的請求,查找是否本地已緩存所述文件數(shù)據(jù);
[0027]如果已緩存,則讀取所述文件數(shù)據(jù)。
[0028]進一步,所述應(yīng)用服務(wù)器經(jīng)查找,在本地未緩存所述文件數(shù)據(jù),根據(jù)從管理平臺獲取的列表,查找是否在列表中的其他應(yīng)用服務(wù)器中緩存所述文件數(shù)據(jù);
[0029]如果其他應(yīng)用服務(wù)器已緩存所述文件數(shù)據(jù),則向其發(fā)送所述獲取文件數(shù)據(jù)的請求,并接收其返回的所述文件數(shù)據(jù)。
[0030]進一步,所述應(yīng)用服務(wù)器接收其他服務(wù)器發(fā)送的獲取文件數(shù)據(jù)的請求,讀取該文件數(shù)據(jù),并返回給請求獲取該文件數(shù)據(jù)的其他服務(wù)器;
[0031]其中,該其他應(yīng)用服務(wù)器在本地未緩存該文件數(shù)據(jù),并根據(jù)從管理平臺獲取的列表,查找到緩存該文件數(shù)據(jù)的應(yīng)用服務(wù)器,則向其發(fā)送獲取文件數(shù)據(jù)的請求。
[0032]進一步,所述應(yīng)用服務(wù)器在所有應(yīng)用服務(wù)器都未緩存所述文件數(shù)據(jù)時,向云存儲系統(tǒng)發(fā)送所述獲取文件數(shù)據(jù)的請求,并獲取其返回的所述文件數(shù)據(jù)。
[0033]本發(fā)明中,由于本地已緩存所述文件數(shù)據(jù),則無需向云存儲系統(tǒng)請求獲取所述文件數(shù)據(jù)。從而,減少了對云存儲系統(tǒng)的頻繁讀取操作,減輕了對云存儲系統(tǒng)中各個服務(wù)器的壓力。
[0034]如果該應(yīng)用服務(wù)器本地未緩存所述文件數(shù)據(jù),則查找是否在其他應(yīng)用服務(wù)器中緩存了所述文件數(shù)據(jù),并且,經(jīng)查找列表,在其他應(yīng)用服務(wù)器中找到該文件數(shù)據(jù)。從而,無需向云存儲系統(tǒng)請求獲取所述文件數(shù)據(jù)。從而,減少了對云存儲系統(tǒng)的頻繁讀取操作,減輕了對云存儲系統(tǒng)中各個服務(wù)器的壓力。
[0035]如果該應(yīng)用服務(wù)器中緩存了其他應(yīng)用服務(wù)器要獲取的文件數(shù)據(jù),并將該文件數(shù)據(jù)返回給請求獲取文件數(shù)據(jù)的其他應(yīng)用服務(wù)器。從而,無需向云存儲系統(tǒng)請求獲取所述文件數(shù)據(jù)。從而,減少了對云存儲系統(tǒng)的頻繁讀取操作,減輕了對云存儲系統(tǒng)中各個服務(wù)器的壓力。
[0036]如果所有應(yīng)用服務(wù)器都未緩存該文件數(shù)據(jù),則可以向云存儲系統(tǒng)請求獲取該文件數(shù)據(jù)。因此,也可以實現(xiàn)獲取該文件數(shù)據(jù)的目的。
[0037]通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其優(yōu)點將會變得清楚。
【附圖說明】
[0038]構(gòu)成說明書的一部分的附圖描述了本發(fā)明的實施例,并且連同說明書一起用于解釋本發(fā)明的原理。
[0039]參照附圖,根據(jù)下面的詳細描述,可以更加清楚地理解本發(fā)明,其中:
[0040]圖1為一種獲取文件數(shù)據(jù)的應(yīng)用服務(wù)器的結(jié)構(gòu)示意圖。
[0041]圖2為一種獲取文件數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)示意圖。
[0042]圖3為一種獲取文件數(shù)據(jù)的方法的流程示意圖。
[0043]圖4為一種獲取文件數(shù)據(jù)的方法實施例的流程示意圖。
【具體實施方式】
[0044]現(xiàn)在將參照附圖來詳細描述本發(fā)明的各種示例性實施例。應(yīng)注意到:除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數(shù)字表達式和數(shù)值不限制本發(fā)明的范圍。
[0045]同時,應(yīng)當明白,為了便于描述,附圖中所示出的各個部分的尺寸并不是按照實際的比例關(guān)系繪制的。
[0046]以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應(yīng)用或使用的任何限制。
[0047]對于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細討論,但在適當情況下,所述技術(shù)、方法和設(shè)備應(yīng)當被視為授權(quán)說明書的一部分。
[0048]在這里示出和討論的所有示例中,任何具體值應(yīng)被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它示例可以具有不同的值。
[0049]應(yīng)注意到: