一種小文件和大文件的存儲(chǔ)及訪問(wèn)方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種小文件和大文件的存儲(chǔ)及訪問(wèn)方法,本發(fā)明在存儲(chǔ)過(guò)程中,將小文件和常用大文件存儲(chǔ)在緩存服務(wù)器中,訪問(wèn)方法的具體步驟為:用戶(hù)設(shè)備根據(jù)用戶(hù)請(qǐng)求文件名在其前面添加標(biāo)識(shí)性前綴;緩存服務(wù)器收到請(qǐng)求后根據(jù)文件名的前綴標(biāo)識(shí)符判斷其是大文件還是小文件;若請(qǐng)求文件為小文件,緩存服務(wù)器搜索本地小文件存儲(chǔ)區(qū),若請(qǐng)求文件為大文件,緩存服務(wù)器搜索本地緩存區(qū);若緩存服務(wù)器具有該文件則引導(dǎo)用戶(hù)訪問(wèn)該文件,若緩存服務(wù)器沒(méi)有該文件且用戶(hù)請(qǐng)求為大文件則發(fā)送用戶(hù)請(qǐng)求給管理服務(wù)器,本發(fā)明將小文件和常用大文件存儲(chǔ)在緩存服務(wù)器,引入文件名標(biāo)識(shí)性前綴判斷,能有效提高用戶(hù)訪問(wèn)文件的效率,減少用戶(hù)等待時(shí)間。
【專(zhuān)利說(shuō)明】一種小文件和大文件的存儲(chǔ)及訪問(wèn)方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及文件訪問(wèn)領(lǐng)域,特別涉及一種小文件和大文件的存儲(chǔ)及訪問(wèn)方法。
【背景技術(shù)】
[0002]隨著社會(huì)的發(fā)展,人們?nèi)粘I詈凸ぷ髦挟a(chǎn)生了大量的數(shù)據(jù),這些數(shù)據(jù)以文本、文檔、Exce前綴等小文件為主,但也包括部分大文件如視頻文件、高清圖片文件等。根據(jù)習(xí)慣來(lái)看,人們?cè)L問(wèn)最多的通常是小文件和部分大文件。因此如何高效地存儲(chǔ)這兩類(lèi)文件并使用戶(hù)能快速訪問(wèn)這兩類(lèi)文件成為當(dāng)前文件訪問(wèn)領(lǐng)域存在的難題。
[0003]當(dāng)前的文件訪問(wèn)方式研究集中在海量小文件存儲(chǔ)和快速訪問(wèn)領(lǐng)域,如淘寶的TFS能提供針對(duì)小文件的快速訪問(wèn),卻無(wú)法快速訪問(wèn)大文件,又比如HDFS能高效快速訪問(wèn)大文件,卻把小文件當(dāng)作大文件一樣存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)中,這導(dǎo)致了針對(duì)小文件的訪問(wèn)速度較慢。實(shí)際操作中,用戶(hù)通常經(jīng)常訪問(wèn)多個(gè)小文件和少量大文件,因此如何將這部分經(jīng)常訪問(wèn)的大文件與一般大文件區(qū)分開(kāi)來(lái)并在確保高效訪問(wèn)小文件的前提下快速訪問(wèn)經(jīng)常訪問(wèn)的大文件成為目前需要解決的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種小文件和大文件的存儲(chǔ)方法。
[0005]本發(fā)明的第二目的在于提供一種快速的小文件和大文件的訪問(wèn)方法。該訪問(wèn)方法保證既能對(duì)小文件的快速訪問(wèn)又能對(duì)使用頻率較高的大文件實(shí)現(xiàn)快速訪問(wèn)。
[0006]本發(fā)明的第一目的通過(guò)下述技術(shù)方案實(shí)現(xiàn):一種小文件和大文件的存儲(chǔ)方法,步驟如下:
[0007]S1、用戶(hù)通過(guò)用戶(hù)設(shè)備創(chuàng)建新文件,根據(jù)第一閾值確定所要?jiǎng)?chuàng)建的新文件是大文件還是小文件,并設(shè)置文件名,在文件名上添加用于識(shí)別大文件和小文件的標(biāo)識(shí)性前綴;
[0008]S2、用戶(hù)設(shè)備將創(chuàng)建新文件請(qǐng)求指令發(fā)送給緩存服務(wù)器,緩存服務(wù)器收到用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令后,識(shí)別所要?jiǎng)?chuàng)建的新文件的文件名標(biāo)識(shí)性前綴,判斷所要?jiǎng)?chuàng)建的新文件是大文件還是小文件;
[0009]若所要?jiǎng)?chuàng)建的新文件為小文件,則在緩存服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù);
[0010]若所要?jiǎng)?chuàng)建的新文件為大文件,則緩存器將用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令發(fā)送給管理服務(wù)器;
[0011]S3、管理服務(wù)器收到來(lái)自于緩存服務(wù)器的創(chuàng)建新文件請(qǐng)求指令后,管理服務(wù)器創(chuàng)建該大文件并將其進(jìn)行分塊,得到數(shù)據(jù)塊,并且保存該大文件的元數(shù)據(jù);
[0012]S4、管理服務(wù)器將創(chuàng)建的大文件劃分的數(shù)據(jù)塊發(fā)送給數(shù)據(jù)服務(wù)器進(jìn)行保存,同時(shí)緩存服務(wù)器根據(jù)大文件請(qǐng)求訪問(wèn)次數(shù)確定大文件是否為常用大文件,若是,則從數(shù)據(jù)服務(wù)器端將該大文件下載并保存在緩存服務(wù)器中。
[0013]優(yōu)選的,在所述步驟S2中,若所要?jiǎng)?chuàng)建的新文件為小文件時(shí),則緩存服務(wù)器首先查詢(xún)緩存服務(wù)器當(dāng)前存儲(chǔ)的小文件元數(shù)據(jù),判斷所要?jiǎng)?chuàng)建的新文件的文件名是否與緩存服務(wù)器中當(dāng)前已有小文件的文件名重名;
[0014]若是,則緩存服務(wù)器發(fā)送“文件已存在”信息給用戶(hù)設(shè)備,并且丟棄用戶(hù)發(fā)送的創(chuàng)建新文件請(qǐng)求指令;
[0015]若否,在緩存服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù)。
[0016]優(yōu)選的,在所述步驟S3中,若所要?jiǎng)?chuàng)建的新文件為大文件,管理服務(wù)器收到來(lái)自于緩存服務(wù)器的創(chuàng)建新文件請(qǐng)求指令后,判斷所要?jiǎng)?chuàng)建的新文件的文件名是否與管理服務(wù)器中當(dāng)前已有大文件的文件名重名;
[0017]若是,則管理服務(wù)器發(fā)送“文件已存在”信息給用戶(hù)設(shè)備,并且丟棄用戶(hù)發(fā)送的創(chuàng)建新文件請(qǐng)求指令;
[0018]若否,在管理服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù)。
[0019]優(yōu)選的,所述第一閾值為1M,當(dāng)文件的大小超過(guò)IM時(shí),則將該文件判斷為大文件,否則判斷為小文件。
[0020]優(yōu)選的,所述大文件和小文件的標(biāo)識(shí)性前綴分別為L(zhǎng)和S ;即用戶(hù)設(shè)備在創(chuàng)建的大文件的文件名前添加L,用戶(hù)設(shè)備在創(chuàng)建的小文件的文件名前添加S。
[0021]優(yōu)選的,所述緩存服務(wù)器包括存儲(chǔ)區(qū)和緩存區(qū);小文件及小文件元數(shù)據(jù)存儲(chǔ)在緩存服務(wù)器的存儲(chǔ)區(qū),常用大文件以及常用大文件元數(shù)據(jù)保存在緩存服務(wù)器的緩存區(qū)。
[0022]本發(fā)明的第二目的通過(guò)下述技術(shù)方案實(shí)現(xiàn):一種基于上述存儲(chǔ)方法實(shí)現(xiàn)的小文件和大文件的訪問(wèn)方法,其特征在于,步驟如下:
[0023]Sa、用戶(hù)在用戶(hù)設(shè)備中輸入文件名,通過(guò)用戶(hù)設(shè)備提出訪問(wèn)文件請(qǐng)求,用戶(hù)設(shè)備搜索日志確定用戶(hù)輸入的文件名對(duì)應(yīng)的文件是大文件還是小文件,然后在用戶(hù)訪問(wèn)請(qǐng)求指令中的文件名中添加大文件或小文件標(biāo)識(shí)性前綴,用戶(hù)設(shè)備發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令給緩存服務(wù)器;
[0024]Sb、緩存服務(wù)器接收到用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令,根據(jù)用戶(hù)訪問(wèn)請(qǐng)求指令中文件名的標(biāo)識(shí)性前綴判斷用戶(hù)請(qǐng)求訪問(wèn)的是大文件還是小文件;
[0025]若是小文件,則緩存服務(wù)器搜索本地小文件元數(shù)據(jù),判斷緩存服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的小文件;若存在,則緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)該小文件進(jìn)行的訪問(wèn);否則緩存服務(wù)器返回未找到信息指令給用戶(hù)設(shè)備;
[0026]若是大文件,則緩存服務(wù)器搜索本地常用大文件元數(shù)據(jù),判斷緩存服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的大文件;若是,則緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)該大文件進(jìn)行的訪問(wèn);若否,則緩存服務(wù)器將用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令發(fā)送給管理服務(wù)器,進(jìn)入步驟Sc,同時(shí)緩存服務(wù)器記錄通過(guò)其請(qǐng)求訪問(wèn)的該大文件的請(qǐng)求訪問(wèn)次數(shù);
[0027]Sc、管理服務(wù)器接收到來(lái)自于緩存服務(wù)器的用戶(hù)訪問(wèn)請(qǐng)求指令后,搜索本地大文件元數(shù)據(jù),判斷管理服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的大文件;若存在,則引導(dǎo)用戶(hù)對(duì)大文件訪問(wèn);否則返回未找到信息給用戶(hù)設(shè)備。
[0028]優(yōu)選的,所述步驟Sb中,緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)小文件進(jìn)行訪問(wèn)的具體過(guò)程如下:
[0029]首先緩存服務(wù)器判斷用戶(hù)要求訪問(wèn)的小文件是否處于可編輯狀態(tài);
[0030]若是,則允許用戶(hù)對(duì)該小文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)小文件實(shí)施讀或?qū)懖僮鲿r(shí),緩存服務(wù)器自動(dòng)鎖定該小文件;
[0031]若否,緩存服務(wù)器發(fā)送“該文件正被其他用戶(hù)使用”信息給用戶(hù)設(shè)備,并終止用戶(hù)的訪問(wèn)請(qǐng)求;
[0032]所述步驟Sb中,緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)常用大文件進(jìn)行訪問(wèn)的具體過(guò)程如下:
[0033]首先緩存服務(wù)器判斷用戶(hù)要求訪問(wèn)的常用大文件是否處于可編輯狀態(tài);
[0034]若是,則允許用戶(hù)對(duì)該大文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)文件實(shí)施讀或?qū)懖僮鲿r(shí),緩存服務(wù)器自動(dòng)鎖定該大文件;在用戶(hù)操作完成后,緩存服務(wù)器發(fā)送更新日志給管理服務(wù)器,管理服務(wù)器根據(jù)收到的更新日志更新對(duì)應(yīng)的大文件;
[0035]若否,則緩存服務(wù)器發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令給管理服務(wù)器,然后進(jìn)入步驟Sc。
[0036]優(yōu)選的,所述步驟Sc中,管理服務(wù)器引導(dǎo)用戶(hù)對(duì)文件進(jìn)行訪問(wèn)的具體過(guò)程如下:
[0037]首先管理服務(wù)器判斷用戶(hù)要求訪問(wèn)的大文件是否處于可編輯狀態(tài);
[0038]若是,則允許用戶(hù)對(duì)該常用大文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)大文件實(shí)施讀或?qū)懖僮鲿r(shí),管理服務(wù)器自動(dòng)鎖定該大文件;在用戶(hù)操作完成后,管理服務(wù)器發(fā)送更新日志給緩存服務(wù)器,緩存服務(wù)器根據(jù)接收到的更新日志查詢(xún)本地是否緩存了該大文件;若是,則更新該大文件;若否,則丟棄管理服務(wù)器發(fā)送的該更新日志;
[0039]若否,管理服務(wù)器發(fā)送“該文件正被其他用戶(hù)使用”信息給用戶(hù)設(shè)備,并終止用戶(hù)的訪問(wèn)請(qǐng)求。
[0040]優(yōu)選的,所述大文件和小文件的標(biāo)識(shí)性前綴分別為L(zhǎng)和S ;所述步驟Sa中當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是大文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名前添加L ;當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是小文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名中添加S。
[0041]本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
[0042]本發(fā)明弓丨入用于判定大文件和小文件的文件名標(biāo)識(shí)性前綴,將小文件、大文件中的訪問(wèn)頻率較高的常用大文件以及一般大文件進(jìn)行分開(kāi)存儲(chǔ),其中小文件和常用大文件存儲(chǔ)于訪問(wèn)時(shí)優(yōu)先搜索的緩存服務(wù)器,大文件存儲(chǔ)于訪問(wèn)時(shí)后搜索的管理服務(wù)器中,在訪問(wèn)過(guò)程中通過(guò)緩存服務(wù)器能夠優(yōu)先訪問(wèn)到小文件和常用大文件,大大提高了小文件以及常用大文件的訪問(wèn)速度,有效降低了文件訪問(wèn)復(fù)雜度,在確保高效訪問(wèn)小文件的前提下保證能夠快速訪問(wèn)常用大文件,減少了用戶(hù)訪問(wèn)等待時(shí)間。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0043]圖1是本發(fā)明中實(shí)現(xiàn)存儲(chǔ)和訪問(wèn)方法的系統(tǒng)架構(gòu)圖。
[0044]圖2是本發(fā)明小文件和大文件的存儲(chǔ)方法流程圖。
[0045]圖3是本發(fā)明小文件和大文件的訪問(wèn)方法流程圖。
【具體實(shí)施方式】
[0046]下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
[0047]實(shí)施例
[0048]實(shí)施例1
[0049]本實(shí)施例公開(kāi)一種小文件和大文件的存儲(chǔ)方法,該方法是在基于如圖1所示的用戶(hù)設(shè)備、緩存服務(wù)器、管理服務(wù)器和數(shù)據(jù)服務(wù)器的基礎(chǔ)上實(shí)現(xiàn)的;其中
[0050]用戶(hù)設(shè)備:用于創(chuàng)建文件、記錄日志以及搜索日志;根據(jù)第一閾值確定所要?jiǎng)?chuàng)建的文件是大文件還是小文件,在創(chuàng)建的文件名上添加分別用于識(shí)別大文件和小文件的標(biāo)識(shí)性前綴L和S,其中用戶(hù)設(shè)備在創(chuàng)建的大文件的文件名前添加L,用戶(hù)設(shè)備在創(chuàng)建的小文件的文件名前添加S,并發(fā)送創(chuàng)建新文件請(qǐng)求指令給緩存服務(wù)器。用于根據(jù)搜索日志確定所要訪問(wèn)文件名對(duì)應(yīng)的文件是大文件還是小文件,然后在用戶(hù)訪問(wèn)請(qǐng)求指令中的文件名中添加用于識(shí)別大文件和小文件的標(biāo)識(shí)性前綴,當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是大文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名前添加L ;當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是小文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名中添加S。用于發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令。在本實(shí)施例中確定文件為大文件還是小文件的第一閾值為1M,即當(dāng)文件的大小超過(guò)IM時(shí),則將該文件判斷為大文件,否則判斷為小文件。
[0051]緩存服務(wù)器:用于存儲(chǔ)小文件、小文件元數(shù)據(jù)、常用大文件和常用大文件元數(shù)據(jù),其中所述常用大文件指的是訪問(wèn)頻率大于第二閾值的大文件;用于接收用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令;用于接收用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令,然后根據(jù)用戶(hù)訪問(wèn)請(qǐng)求指令中文件名的標(biāo)識(shí)性前綴判斷用戶(hù)需要訪問(wèn)的文件為大文件還是小文件;用于引導(dǎo)用戶(hù)訪問(wèn)小文件和常用大文件;用于發(fā)送用戶(hù)訪問(wèn)指令請(qǐng)求到管理服務(wù)器;緩存服務(wù)器還用于計(jì)算未保存在其中的大文件訪問(wèn)次數(shù),將請(qǐng)求訪問(wèn)次數(shù)大于第二閾值的大文件認(rèn)定為常用大文件,然后從數(shù)據(jù)服務(wù)器端將該大文件下載并保存在本地緩存區(qū)中。
[0052]管理服務(wù)器,用于存儲(chǔ)大文件元數(shù)據(jù);用于負(fù)責(zé)響應(yīng)緩存服務(wù)器發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令;用于引導(dǎo)用戶(hù)訪問(wèn)大文件。
[0053]數(shù)據(jù)服務(wù)器,用于存儲(chǔ)大文件數(shù)據(jù)塊。
[0054]如圖2所示,本實(shí)施例中小文件和大文件的存儲(chǔ)方法具體步驟如下:
[0055]S1、用戶(hù)通過(guò)用戶(hù)設(shè)備創(chuàng)建新文件,根據(jù)第一閾值確定所要?jiǎng)?chuàng)建的新文件是大文件還是小文件,并設(shè)置文件名,在文件名上添加用于識(shí)別大文件和小文件的標(biāo)識(shí)性前綴L和S ;在本實(shí)施例中確定文件為大文件還是小文件的第一閾值為1M,即當(dāng)文件的大小超過(guò)IM時(shí),則將該文件判斷為大文件,否則判斷為小文件。
[0056]S2、用戶(hù)設(shè)備將創(chuàng)建新文件請(qǐng)求指令發(fā)送給緩存服務(wù)器,緩存服務(wù)器收到用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令后,通過(guò)創(chuàng)建新文件請(qǐng)求指令識(shí)別所要?jiǎng)?chuàng)建的新文件的文件名標(biāo)識(shí)性前綴,判斷所要?jiǎng)?chuàng)建的新文件是大文件還是小文件,若緩存服務(wù)器識(shí)別到所要?jiǎng)?chuàng)建的新文件的文件名標(biāo)識(shí)性前綴為L(zhǎng),則判定要?jiǎng)?chuàng)建的新文件為大文件,若識(shí)別到所要?jiǎng)?chuàng)建的新文件的文件名標(biāo)識(shí)性前綴為S,則判定要?jiǎng)?chuàng)建的新文件為小文件;
[0057]若所要?jiǎng)?chuàng)建的新文件為小文件,則緩存服務(wù)器首先查詢(xún)當(dāng)前存儲(chǔ)的小文件元數(shù)據(jù),判斷所要?jiǎng)?chuàng)建的新文件的文件名是否與緩存服務(wù)器中當(dāng)前已有小文件的文件名重名;
[0058]若是,則緩存服務(wù)器發(fā)送“文件已存在”信息給用戶(hù)設(shè)備,并且丟棄用戶(hù)發(fā)送的創(chuàng)建新文件請(qǐng)求指令;
[0059]若否,在緩存服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù)。
[0060]若所要?jiǎng)?chuàng)建的新文件為大文件,則緩存器將用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令發(fā)送給管理服務(wù)器。
[0061]S3、管理服務(wù)器收到來(lái)自于緩存服務(wù)器的創(chuàng)建新文件請(qǐng)求指令后,判斷所要?jiǎng)?chuàng)建的新文件的文件名是否與管理服務(wù)器中當(dāng)前已有大文件的文件名重名;
[0062]若是,則管理服務(wù)器發(fā)送“文件已存在”信息給用戶(hù)設(shè)備,并且丟棄用戶(hù)發(fā)送的創(chuàng)建新文件請(qǐng)求指令;
[0063]若否,在管理存服務(wù)器中創(chuàng)建該大文件并將其進(jìn)行分塊,得到數(shù)據(jù)塊,并且保存該大文件的元數(shù)據(jù);
[0064]S4、管理服務(wù)器將創(chuàng)建的大文件劃分的數(shù)據(jù)塊發(fā)送給數(shù)據(jù)服務(wù)器進(jìn)行保存;同時(shí)緩存服務(wù)器根據(jù)大文件請(qǐng)求訪問(wèn)次數(shù)確定大文件是否為常用大文件,若是,則從數(shù)據(jù)服務(wù)器端將該大文件下載并保存在緩存服務(wù)器中。
[0065]在本實(shí)施例中緩存服務(wù)器包括存儲(chǔ)區(qū)和緩存區(qū);小文件及小文件元數(shù)據(jù)存儲(chǔ)在緩存服務(wù)器的存儲(chǔ)區(qū),以永久方式保存小文件元數(shù)據(jù);常用大文件以及常用大文件元數(shù)據(jù)保存在緩存服務(wù)器的緩存區(qū),以更新方式保存經(jīng)常訪問(wèn)的常用大文件元數(shù)據(jù)。
[0066]如圖3所示,本實(shí)施例還公開(kāi)了一種小文件和大文件的訪問(wèn)方法,步驟如下:
[0067]Sa、用戶(hù)在用戶(hù)設(shè)備中輸入文件名,通過(guò)用戶(hù)設(shè)備提出訪問(wèn)文件請(qǐng)求,用戶(hù)設(shè)備搜索日志確定用戶(hù)輸入的文件名對(duì)應(yīng)的文件是大文件還是小文件,然后在用戶(hù)訪問(wèn)請(qǐng)求指令中的文件名中添加大文件或小文件標(biāo)識(shí)性前綴,當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是大文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名前添加L ;當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是小文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名中添加S,用戶(hù)設(shè)備發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令給緩存服務(wù)器;
[0068]Sb、緩存服務(wù)器接收到用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令,根據(jù)用戶(hù)訪問(wèn)請(qǐng)求指令中文件名的標(biāo)識(shí)性前綴判斷用戶(hù)請(qǐng)求訪問(wèn)的是大文件還是小文件;若用戶(hù)訪問(wèn)請(qǐng)求指令中文件名的標(biāo)識(shí)性前綴為L(zhǎng)時(shí),則用戶(hù)請(qǐng)求訪問(wèn)的是大文件,若用戶(hù)訪問(wèn)請(qǐng)求指令中文件名的標(biāo)識(shí)性前綴為S時(shí),則用戶(hù)請(qǐng)求訪問(wèn)的是小文件;
[0069]若是小文件,則緩存服務(wù)器搜索本地存儲(chǔ)區(qū)的小文件元數(shù)據(jù),判斷緩存服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的小文件;
[0070]若不存在,則緩存服務(wù)器返回“請(qǐng)求文件不存在”的未找到信息指令給用戶(hù)設(shè)備;
[0071]若存在,則緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)該小文件進(jìn)行的訪問(wèn),具體過(guò)程如下:
[0072]首先緩存服務(wù)器判斷用戶(hù)要求訪問(wèn)的小文件是否處于可編輯狀態(tài);
[0073]若是,則允許用戶(hù)對(duì)該小文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)小文件實(shí)施讀或?qū)懖僮鲿r(shí),緩存服務(wù)器自動(dòng)鎖定該小文件;
[0074]若否,緩存服務(wù)器發(fā)送“該文件正被其他用戶(hù)使用”信息給用戶(hù)設(shè)備,并終止用戶(hù)的訪問(wèn)請(qǐng)求;
[0075]若是大文件,則緩存服務(wù)器搜索本地緩存區(qū)的常用大文件元數(shù)據(jù),判斷緩存服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的大文件;
[0076]若不存在,則緩存服務(wù)器將用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令發(fā)送給管理服務(wù)器,然后進(jìn)入步驟Sc ;同時(shí)緩存服務(wù)器器記錄通過(guò)其請(qǐng)求訪問(wèn)的該大文件的請(qǐng)求訪問(wèn)次數(shù),若訪問(wèn)次數(shù)大于第二閾值,則將該大文件認(rèn)定為常用大文件,在存儲(chǔ)過(guò)程中,從數(shù)據(jù)服務(wù)器端將該大文件下載并保存在本地緩存區(qū)中,其中本實(shí)施例中第二閾值的大小根據(jù)實(shí)際訪問(wèn)需求進(jìn)行設(shè)定;
[0077]若存在,則緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)該大文件進(jìn)行的訪問(wèn);具體過(guò)程如下:
[0078]首先緩存服務(wù)器判斷用戶(hù)要求訪問(wèn)的常用大文件是否處于可編輯狀態(tài);
[0079]若是,則允許用戶(hù)對(duì)該常用大文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)常用大文件實(shí)施讀或?qū)懖僮鲿r(shí),緩存服務(wù)器自動(dòng)鎖定該常用大文件;在用戶(hù)操作完成后,緩存服務(wù)器發(fā)送更新日志給管理服務(wù)器,管理服務(wù)器根據(jù)收到的更新日志更新對(duì)應(yīng)的大文件;
[0080]若否,則緩存服務(wù)器發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令給管理服務(wù)器,然后進(jìn)入步驟Sc。
[0081]Sc、管理服務(wù)器接收到來(lái)自于緩存服務(wù)器的用戶(hù)訪問(wèn)請(qǐng)求指令后,搜索本地大文件元數(shù)據(jù),判斷管理服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的大文件;
[0082]若不存在,則管理服務(wù)器返回“請(qǐng)求文件不存在”的未找到信息指令給用戶(hù)設(shè)備;
[0083]若存在,則引導(dǎo)用戶(hù)對(duì)大文件訪問(wèn);具體過(guò)程如下:
[0084]首先管理服務(wù)器判斷用戶(hù)要求訪問(wèn)的大文件是否處于可編輯狀態(tài);
[0085]若是,則允許用戶(hù)對(duì)該常用大文件實(shí)施讀或?qū)懖僮鳎煌瑫r(shí)在用戶(hù)對(duì)大文件實(shí)施讀或?qū)懖僮鲿r(shí),管理服務(wù)器自動(dòng)鎖定該大文件;在用戶(hù)操作完成后,管理服務(wù)器發(fā)送更新日志給緩存服務(wù)器,緩存服務(wù)器根據(jù)接收到的更新日志查詢(xún)本地是否緩存了該大文件;若是,則更新該大文件;若否,則丟棄管理服務(wù)器發(fā)送的該更新日志;
[0086]若否,管理服務(wù)器發(fā)送“該文件正被其他用戶(hù)使用”信息給用戶(hù)設(shè)備,并終止用戶(hù)的訪問(wèn)請(qǐng)求。
[0087]上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種小文件和大文件的存儲(chǔ)方法,其特征在于,步驟如下: 51、用戶(hù)通過(guò)用戶(hù)設(shè)備創(chuàng)建新文件,根據(jù)第一閾值確定所要?jiǎng)?chuàng)建的新文件是大文件還是小文件,并設(shè)置文件名,在文件名上添加用于識(shí)別大文件和小文件的標(biāo)識(shí)性前綴; 52、用戶(hù)設(shè)備將創(chuàng)建新文件請(qǐng)求指令發(fā)送給緩存服務(wù)器,緩存服務(wù)器收到用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令后,識(shí)別所要?jiǎng)?chuàng)建的新文件的文件名標(biāo)識(shí)性前綴,判斷所要?jiǎng)?chuàng)建的新文件是大文件還是小文件; 若所要?jiǎng)?chuàng)建的新文件為小文件,則在緩存服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù); 若所要?jiǎng)?chuàng)建的新文件為大文件,則緩存器將用戶(hù)設(shè)備發(fā)送的創(chuàng)建新文件請(qǐng)求指令發(fā)送給管理服務(wù)器; 53、管理服務(wù)器收到來(lái)自于緩存服務(wù)器的創(chuàng)建新文件請(qǐng)求指令后,管理服務(wù)器創(chuàng)建該大文件并將其進(jìn)行分塊,得到數(shù)據(jù)塊,并且保存該大文件的元數(shù)據(jù); 54、管理服務(wù)器將創(chuàng)建的大文件劃分的數(shù)據(jù)塊發(fā)送給數(shù)據(jù)服務(wù)器進(jìn)行保存,同時(shí)緩存服務(wù)器根據(jù)大文件請(qǐng)求訪問(wèn)次數(shù)確定大文件是否為常用大文件,若是,則從數(shù)據(jù)服務(wù)器端將該大文件下載并保存在緩存服務(wù)器中。
2.根據(jù)權(quán)利要求1所述的小文件和大文件的存儲(chǔ)方法,其特征在于, 在所述步驟S2中,若所要?jiǎng)?chuàng)建的新文件為小文件時(shí),則緩存服務(wù)器首先查詢(xún)緩存服務(wù)器當(dāng)前存儲(chǔ)的小文件元數(shù)據(jù),判斷所要?jiǎng)?chuàng)建的新文件的文件名是否與緩存服務(wù)器中當(dāng)前已有小文件的文件名重名; 若是,則緩存服務(wù)器發(fā)送“文件已存在”信息給用戶(hù)設(shè)備,并且丟棄用戶(hù)發(fā)送的創(chuàng)建新文件請(qǐng)求指令; 若否,在緩存服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的小文件和大文件的存儲(chǔ)方法,其特征在于, 在所述步驟S3中,若所要?jiǎng)?chuàng)建的新文件為大文件,管理服務(wù)器收到來(lái)自于緩存服務(wù)器的創(chuàng)建新文件請(qǐng)求指令后,判斷所要?jiǎng)?chuàng)建的新文件的文件名是否與管理服務(wù)器中當(dāng)前已有大文件的文件名重名; 若是,則管理服務(wù)器發(fā)送“文件已存在”信息給用戶(hù)設(shè)備,并且丟棄用戶(hù)發(fā)送的創(chuàng)建新文件請(qǐng)求指令; 若否,在管理服務(wù)器中創(chuàng)建該文件并保存其元數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的小文件和大文件的存儲(chǔ)方法,其特征在于,所述第一閾值為1M,當(dāng)文件的大小超過(guò)IM時(shí),則將該文件判斷為大文件,否則判斷為小文件。
5.根據(jù)權(quán)利要求1所述的小文件和大文件的存儲(chǔ)方法,其特征在于,所述大文件和小文件的標(biāo)識(shí)性前綴分別為L(zhǎng)和S ;即用戶(hù)設(shè)備在創(chuàng)建的大文件的文件名前添加L,用戶(hù)設(shè)備在創(chuàng)建的小文件的文件名前添加S。
6.根據(jù)權(quán)利要求1所述的小文件和大文件的存儲(chǔ)方法,其特征在于,所述緩存服務(wù)器包括存儲(chǔ)區(qū)和緩存區(qū);小文件及小文件元數(shù)據(jù)存儲(chǔ)在緩存服務(wù)器的存儲(chǔ)區(qū),常用大文件以及常用大文件元數(shù)據(jù)保存在緩存服務(wù)器的緩存區(qū)。
7.一種基于權(quán)利要求1至6中任一項(xiàng)所述存儲(chǔ)方法實(shí)現(xiàn)的小文件和大文件的訪問(wèn)方法,其特征在于,步驟如下: Sa、用戶(hù)在用戶(hù)設(shè)備中輸入文件名,通過(guò)用戶(hù)設(shè)備提出訪問(wèn)文件請(qǐng)求,用戶(hù)設(shè)備搜索日志確定用戶(hù)輸入的文件名對(duì)應(yīng)的文件是大文件還是小文件,然后在用戶(hù)訪問(wèn)請(qǐng)求指令中的文件名中添加大文件或小文件標(biāo)識(shí)性前綴,用戶(hù)設(shè)備發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令給緩存服務(wù)器; Sb、緩存服務(wù)器接收到用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令,根據(jù)用戶(hù)訪問(wèn)請(qǐng)求指令中文件名的標(biāo)識(shí)性前綴判斷用戶(hù)請(qǐng)求訪問(wèn)的是大文件還是小文件; 若是小文件,則緩存服務(wù)器搜索本地小文件元數(shù)據(jù),判斷緩存服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的小文件;若存在,則緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)該小文件進(jìn)行的訪問(wèn);否則緩存服務(wù)器返回未找到信息指令給用戶(hù)設(shè)備; 若是大文件,則緩存服務(wù)器搜索本地常用大文件元數(shù)據(jù),判斷緩存服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的大文件;若是,則緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)該大文件進(jìn)行的訪問(wèn);若否,則緩存服務(wù)器將用戶(hù)設(shè)備發(fā)送的用戶(hù)訪問(wèn)請(qǐng)求指令發(fā)送給管理服務(wù)器,進(jìn)入步驟Sc,同時(shí)緩存服務(wù)器記錄通過(guò)其請(qǐng)求訪問(wèn)的該大文件的請(qǐng)求訪問(wèn)次數(shù); Sc、管理服務(wù)器接收到來(lái)自于緩存服務(wù)器的用戶(hù)訪問(wèn)請(qǐng)求指令后,搜索本地大文件元數(shù)據(jù),判斷管理服務(wù)器中是否存在用戶(hù)要求訪問(wèn)的大文件;若存在,則引導(dǎo)用戶(hù)對(duì)大文件訪問(wèn);否則返回未找到信息給用戶(hù)設(shè)備。
8.根據(jù)權(quán)利要求7所述的小文件和大文件的訪問(wèn)方法,其特征在于, 所述步驟Sb中,緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)小文件進(jìn)行訪問(wèn)的具體過(guò)程如下: 首先緩存服務(wù)器判斷用戶(hù)要求訪問(wèn)的小文件是否處于可編輯狀態(tài); 若是,則允許用戶(hù)對(duì)該小文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)小文件實(shí)施讀或?qū)懖僮鲿r(shí),緩存服務(wù)器自動(dòng)鎖定該小文件; 若否,緩存服務(wù)器發(fā)送“該文件正被其他用戶(hù)使用”信息給用戶(hù)設(shè)備,并終止用戶(hù)的訪問(wèn)請(qǐng)求; 所述步驟Sb中,緩存服務(wù)器引導(dǎo)用戶(hù)對(duì)常用大文件進(jìn)行訪問(wèn)的具體過(guò)程如下: 首先緩存服務(wù)器判斷用戶(hù)要求訪問(wèn)的常用大文件是否處于可編輯狀態(tài); 若是,則允許用戶(hù)對(duì)該大文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)文件實(shí)施讀或?qū)懖僮鲿r(shí),緩存服務(wù)器自動(dòng)鎖定該大文件;在用戶(hù)操作完成后,緩存服務(wù)器發(fā)送更新日志給管理服務(wù)器,管理服務(wù)器根據(jù)收到的更新日志更新對(duì)應(yīng)的大文件; 若否,則緩存服務(wù)器發(fā)送用戶(hù)訪問(wèn)請(qǐng)求指令給管理服務(wù)器,然后進(jìn)入步驟Sc。
9.根據(jù)權(quán)利7所述的小文件和大文件的訪問(wèn)方法,其特征在于, 所述步驟Sc中,管理服務(wù)器引導(dǎo)用戶(hù)對(duì)文件進(jìn)行訪問(wèn)的具體過(guò)程如下: 首先管理服務(wù)器判斷用戶(hù)要求訪問(wèn)的大文件是否處于可編輯狀態(tài); 若是,則允許用戶(hù)對(duì)該常用大文件實(shí)施讀或?qū)懖僮?;同時(shí)在用戶(hù)對(duì)大文件實(shí)施讀或?qū)懖僮鲿r(shí),管理服務(wù)器自動(dòng)鎖定該大文件;在用戶(hù)操作完成后,管理服務(wù)器發(fā)送更新日志給緩存服務(wù)器,緩存服務(wù)器根據(jù)接收到的更新日志查詢(xún)本地是否緩存了該大文件;若是,則更新該大文件;若否,則丟棄管理服務(wù)器發(fā)送的該更新日志; 若否,管理服務(wù)器發(fā)送“該文件正被其他用戶(hù)使用”信息給用戶(hù)設(shè)備,并終止用戶(hù)的訪問(wèn)請(qǐng)求。
10.根據(jù)權(quán)利7所述的小文件和大文件的訪問(wèn)方法,其特征在于,所述大文件和小文件的標(biāo)識(shí)性前綴分別為L(zhǎng)和S ;所述步驟Sa中當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是大文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名前添加L ;當(dāng)所要訪問(wèn)文件名對(duì)應(yīng)的文件是小文件時(shí),用戶(hù)設(shè)備在用戶(hù)訪問(wèn)請(qǐng)求指令的文件名中添加S。
【文檔編號(hào)】G06F17/30GK104331428SQ201410559955
【公開(kāi)日】2015年2月4日 申請(qǐng)日期:2014年10月20日 優(yōu)先權(quán)日:2014年10月20日
【發(fā)明者】翁健, 胡舜, 羅偉其, 賴(lài)俊祚 申請(qǐng)人:暨南大學(xué)