目錄租賃的制作方法
【專利摘要】本發(fā)明涉及目錄租賃。描述了用于允許訪問分布式文件系統(tǒng)的客戶機(jī)本地高速緩存目錄元數(shù)據(jù)的實(shí)施例??蛻魴C(jī)可請求讀租約,這允許該客戶機(jī)本地高速緩存目錄元數(shù)據(jù)并使用該高速緩存服務(wù)于從最初請求目錄元數(shù)據(jù)的同一應(yīng)用程序接收到的請求。此外,客戶機(jī)也可請求句柄租約,這允許客戶機(jī)延遲目錄句柄的關(guān)閉,并允許句柄被重用以服務(wù)于來自同一應(yīng)用程序或不同應(yīng)用程序的后續(xù)目錄元數(shù)據(jù)請求??蛻魴C(jī)還可請求寫租約,這允許該客戶機(jī)上的應(yīng)用程序諸如通過創(chuàng)建或刪除目錄中的新文件或改變其屬性來修改目錄元數(shù)據(jù),并高速緩存這些改變。
【專利說明】目錄租賃
[0001]本申請是申請?zhí)枮?01110290775.3、申請日為2011年9月16日、發(fā)明名稱為“目錄租賃”的發(fā)明專利申請的分案申請。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及本地高速緩存目錄元數(shù)據(jù)。
【背景技術(shù)】
[0003]客戶機(jī)上的應(yīng)用程序常常訪問存儲在分布式文件系統(tǒng)中的文件。分布式文件系統(tǒng)允許對在客戶機(jī)上本地運(yùn)行的應(yīng)用程序透明地訪問遠(yuǎn)程存儲的文件。分布式文件系統(tǒng)可包括允許客戶機(jī)本地高速緩存某些信息使得比遠(yuǎn)程檢索信息更為高效地用本地信息服務(wù)某些請求的某些特征。然而,當(dāng)前的分布式文件系統(tǒng)不具有用于高速緩存諸如元數(shù)據(jù)(例如,目錄元數(shù)據(jù))等信息的機(jī)制,這些元數(shù)據(jù)在訪問分布式文件系統(tǒng)的客戶機(jī)之間提供一致性和相關(guān)性。
[0004]正是基于這些及其他考慮才作出了本發(fā)明的各實(shí)施例。同樣,雖然討論了相對具體的問題,但是,應(yīng)該理解,本發(fā)明的各實(shí)施例不應(yīng)該僅限于解決背景中所標(biāo)識的具體問題。
【發(fā)明內(nèi)容】
[0005]提供本
【發(fā)明內(nèi)容】
以便以簡化形式介紹將在以下的“【具體實(shí)施方式】”中進(jìn)一步描述的一些概念。本
【發(fā)明內(nèi)容】
并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
[0006]描述了用于允許訪問分布式文件系統(tǒng)的客戶機(jī)本地高速緩存目錄元數(shù)據(jù)的實(shí)施例。在一個實(shí)施例中,客戶機(jī)向文件服務(wù)器請求高速緩存目錄數(shù)據(jù)的租約。客戶機(jī)可請求讀租約,這允許該客戶機(jī)本地高速緩存目錄元數(shù)據(jù)并服務(wù)于來自最初請求目錄元數(shù)據(jù)的同一應(yīng)用程序的請求。此外,客戶機(jī)也可請求句柄租約,這允許客戶機(jī)延遲目錄句柄的關(guān)閉,并允許句柄被重用以服務(wù)于來自該客戶機(jī)上的同一應(yīng)用程序或不同應(yīng)用程序的后續(xù)目錄元數(shù)據(jù)請求。在某些實(shí)施例中,服務(wù)器依賴于兩個租約鍵來跟蹤客戶機(jī)租約,并確保對目錄元數(shù)據(jù)擁有讀租約的客戶機(jī)對目錄元數(shù)據(jù)的改變不會導(dǎo)致讀租約被撤銷。在其它實(shí)施例中,客戶機(jī)可請求寫租約,這允許該客戶機(jī)上的應(yīng)用程序諸如通過創(chuàng)建或刪除目錄中的文件或改變其屬性來修改目錄元數(shù)據(jù),并高速緩存這些改變。當(dāng)另一客戶機(jī)請求目錄元數(shù)據(jù)時,寫租約被打破,且改變被轉(zhuǎn)儲清除到服務(wù)器。
[0007]各實(shí)施例可以實(shí)現(xiàn)成計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)或諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)之類的制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀并編碼了用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存儲介質(zhì)。計(jì)算機(jī)程序產(chǎn)品還可以是計(jì)算系統(tǒng)可讀并編碼用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的載波上的傳播信號。
【專利附圖】
【附圖說明】
[0008]參考以下附圖描述非限制性和非窮盡的實(shí)施例。
[0009]圖1示出了可用于實(shí)現(xiàn)一些實(shí)施例的系統(tǒng)的實(shí)施例。
[0010]圖2示出了可在一些實(shí)施例中使用的客戶機(jī)和服務(wù)器的框圖。
[0011]圖3示出了根據(jù)用于本地高速緩存目錄元數(shù)據(jù)的一些實(shí)施例的操作流程。
[0012]圖4示出了根據(jù)用于服務(wù)對目錄元數(shù)據(jù)持有租約的客戶機(jī)修改目錄元數(shù)據(jù)的請求的一些實(shí)施例的操作流程。
[0013]圖5示出了根據(jù)一些實(shí)施例當(dāng)接收到對目錄數(shù)據(jù)的讀租約的撤銷時執(zhí)行的操作流程。
[0014]圖6示出了根據(jù)用于允許本地高速緩存目錄元數(shù)據(jù)的一些實(shí)施例的操作流程。
[0015]圖7示出適于實(shí)現(xiàn)各實(shí)施例的計(jì)算環(huán)境的框圖。
【具體實(shí)施方式】
[0016]以下將結(jié)合作為本發(fā)明一部分并示出用于實(shí)踐本發(fā)明的特定實(shí)施例的附圖來更詳盡地描述各個實(shí)施例。然而各實(shí)施例被實(shí)現(xiàn)為許多不同的形式并且不應(yīng)將其解釋為限制在此處描述的實(shí)施例;相反地,提供這些實(shí)施例以使得本公開變得透徹和完整,并且將本發(fā)明的范圍完全傳達(dá)給本領(lǐng)域普通技術(shù)人員。因此,各實(shí)施例可以呈現(xiàn)完全是硬件實(shí)現(xiàn)、完全是軟件實(shí)現(xiàn)或組合了軟件和硬件方面的實(shí)現(xiàn)。因此,以下詳細(xì)描述并非是局限性的。
[0017]圖1示出了其中可實(shí)現(xiàn)各實(shí)施例的分布式文件系統(tǒng)100的實(shí)施例。系統(tǒng)100包括運(yùn)行要求對文件和文件信息的訪問的各個應(yīng)用程序的客戶機(jī)102和104。文件服務(wù)器106將文件和文件信息例如存儲在數(shù)據(jù)存儲108中。客戶機(jī)102和104可通過例如網(wǎng)絡(luò)110的網(wǎng)絡(luò)訪問文件服務(wù)器106。如本領(lǐng)域的技術(shù)人員可以理解地,網(wǎng)絡(luò)110可以是LAN、WAN(例如,因特網(wǎng))、存儲區(qū)域網(wǎng)或允許客戶機(jī)102和104與文件服務(wù)器106通信的其它網(wǎng)絡(luò)。
[0018]分布式文件系統(tǒng)100可實(shí)現(xiàn)允許客戶機(jī)102和104訪問文件服務(wù)器106的協(xié)議。協(xié)議的一些非限定性示例包括服務(wù)器消息塊(SMB)、SMB2和NFS。如本領(lǐng)域的技術(shù)人員可以理解地,文件訪問協(xié)議提供客戶機(jī)向文件服務(wù)器請求文件的不同格式。實(shí)施例不限于任何特定文件訪問協(xié)議。相反,可使用包括但不限于以上所列的任何文件訪問協(xié)議來實(shí)現(xiàn)所描述的實(shí)施例的特征。
[0019]在一個實(shí)施例中,客戶機(jī)102和104可向文件服務(wù)器106請求允許它們本地高速緩存目錄元數(shù)據(jù)的租約。如本領(lǐng)域的技術(shù)人員可以理解地,文件服務(wù)器106除存儲實(shí)際的文件數(shù)據(jù)以外也可存儲描述目錄中文件的特性的目錄元數(shù)據(jù)。例如,目錄元數(shù)據(jù)可包括但不限于:目錄中每一文件的最后修改的日期、創(chuàng)建日期、文件大小、文件類型和作者名。本實(shí)施例可通過提供租賃機(jī)制來實(shí)現(xiàn)。
[0020]如圖1中所示,某些實(shí)施例允許諸如客戶機(jī)102的客戶機(jī)隨元數(shù)據(jù)租約請求向文件服務(wù)器106發(fā)送分組112。在實(shí)施例中,分組112除租約請求以外還可包括對元數(shù)據(jù)的請求。例如,諸如瀏覽器應(yīng)用程序的應(yīng)用程序可請求特定目錄的目錄元數(shù)據(jù)。響應(yīng)于該請求,客戶機(jī)102可發(fā)送分組112,分組112將包括對該特定目錄的元數(shù)據(jù)的請求以及元數(shù)據(jù)租約請求。
[0021]如圖1中所示,分組112可指定讀租約、寫租約和/或句柄租約。讀租約將允許客戶機(jī)102在本地高速緩存中存儲目錄的元數(shù)據(jù),并每當(dāng)瀏覽器應(yīng)用程序請求目錄元數(shù)據(jù)時,該客戶機(jī)可從本地高速緩存服務(wù)該請求。句柄租約將允許客戶機(jī)102延遲目錄句柄的關(guān)閉,這允許客戶機(jī)102使用目錄句柄來服務(wù)于來自瀏覽器應(yīng)用程序以及請求目錄的目錄元數(shù)據(jù)的其它應(yīng)用程序的后續(xù)請求。寫租約允許客戶機(jī)高速緩存應(yīng)用程序?qū)δ夸浽獢?shù)據(jù)進(jìn)行的改變。
[0022]在圖1所示的實(shí)施例中,文件服務(wù)器106發(fā)送響應(yīng)分組114,分組114包括所請求的目錄元數(shù)據(jù)和對是否授予所請求的租約的指示?;陧憫?yīng)分組,如果租約請求被準(zhǔn)許,則客戶機(jī)102高速緩存目錄元數(shù)據(jù),并將目錄元數(shù)據(jù)提供給瀏覽器應(yīng)用程序。如果響應(yīng)分組指示租約未被授予,則客戶機(jī)102將不會高速緩存目錄元數(shù)據(jù),而是僅將目錄元數(shù)據(jù)提供給瀏覽器應(yīng)用程序。如果客戶機(jī)102未被授予租約,則瀏覽器應(yīng)用程序?qū)δ夸浽獢?shù)據(jù)的任何后續(xù)請求將導(dǎo)致客戶機(jī)向文件服務(wù)器106請求目錄元數(shù)據(jù)。
[0023]如下更詳細(xì)描述地,向客戶機(jī)授予租約在服務(wù)來自應(yīng)用程序的請求方面提供了效率,并減少了客戶機(jī)向文件服務(wù)器106發(fā)送多個請求的需求。從而,在一些實(shí)施例中,文件服務(wù)器106 —般對客戶機(jī)授予租約只要沒有另一客戶機(jī)當(dāng)前持有沖突的租約。為確保目錄元數(shù)據(jù)的相關(guān)性,文件服務(wù)器106確保不向不同的客戶機(jī)授予對特定目錄元數(shù)據(jù)的沖突的租約。
[0024]僅提供圖1的描述來介紹一些實(shí)施例的一些特征。如下更詳細(xì)描述地,其它實(shí)施例可提供其它特征。圖1的描述不應(yīng)被用來限制任何其它實(shí)施例的范圍。
[0025]圖2示出了可在一些實(shí)施例中使用的客戶機(jī)和服務(wù)器的框圖。如上所述,可使用不同的文件訪問協(xié)議來實(shí)現(xiàn)所描述的各實(shí)施例的特征。圖2的以下某些描述包括對SMB2的特征的一些描述。然而,這不應(yīng)被用來限制其它實(shí)施例,因?yàn)榭墒褂萌魏挝募L問協(xié)議來實(shí)現(xiàn)所描述的特征。對SMB2的使用僅是一個示例,且僅用于說明的目的。
[0026]圖2示出了作為分布式文件系統(tǒng)200的一部分的客戶機(jī)202和文件服務(wù)器204的框圖。在一些實(shí)施例中,客戶機(jī)202可在系統(tǒng)100 (圖1)中被實(shí)現(xiàn)為客戶機(jī)102和104,而文件服務(wù)器204可在系統(tǒng)100 (圖1)中被實(shí)現(xiàn)為文件服務(wù)器106。
[0027]如圖2中所示,客戶機(jī)202包括多個應(yīng)用程序206A-C,這些應(yīng)用程序請求對存儲在服務(wù)器204的文件系統(tǒng)208中文件數(shù)據(jù)和元數(shù)據(jù)的訪問??蛻魴C(jī)202還包括重定向器210。在一個實(shí)施例中,重定向器210可被配置為SMB2重定向器,客戶機(jī)202與服務(wù)器204使用根據(jù)SMB2協(xié)議格式化的分組來通信。當(dāng)應(yīng)用程序206A-C之一請求位于服務(wù)器204上的文件時,重定向器210將處理該請求。重定向器210將關(guān)于對文件數(shù)據(jù)和元數(shù)據(jù)的請求創(chuàng)建根據(jù)SMB2協(xié)議格式化的分組。如下更詳細(xì)描述地,在各實(shí)施例中,SMB2協(xié)議被擴(kuò)展成提供允許客戶機(jī)202在客戶機(jī)202上的本地高速緩存212中存儲目錄元數(shù)據(jù)的租賃機(jī)制。租賃機(jī)制利用客戶機(jī)202上的查找表214,該查找表存儲與由服務(wù)器204授予的租約相關(guān)聯(lián)的租約鍵(目錄鍵/文件鍵)。服務(wù)器204還為請求租約并被授予租約的客戶機(jī)存儲租約鍵。服務(wù)器204使用租約表216來存儲租約鍵。
[0028]作為系統(tǒng)200的操作的一個示例,應(yīng)用程序206A可請求存儲在文件系統(tǒng)208的目錄如目錄I中的文件的元數(shù)據(jù)。作為結(jié)果,應(yīng)用程序206A發(fā)出請求,該請求被重定向器210接收。響應(yīng)于接收請求,重定向器210將通過發(fā)送協(xié)商請求分組218來啟動與服務(wù)器204的會話。如本領(lǐng)域的技術(shù)人員將理解地,協(xié)商請求分組218將根據(jù)允許在客戶機(jī)和服務(wù)器之間協(xié)商會話的SMB2協(xié)議格式化。協(xié)商請求分組218將包括指示該客戶機(jī)是否能夠處理目錄元數(shù)據(jù)租賃的信息。在一個實(shí)施例中,目錄元數(shù)據(jù)租賃可僅被SMB2協(xié)議的某些版本支持,協(xié)商請求分組218可提供客戶機(jī)支持SMB2協(xié)議支持元數(shù)據(jù)租賃的一版本并想要使用SMB2協(xié)議的該版本與服務(wù)器通信的指示。
[0029]響應(yīng)于協(xié)商請求分組218,服務(wù)器204將發(fā)送協(xié)商響應(yīng)分組220,該分組可包括對服務(wù)器是否支持SMB2協(xié)議的該版本的指示。在當(dāng)前示例中,協(xié)商響應(yīng)分組220指示服務(wù)器同意使用SMB2協(xié)議支持目錄元數(shù)據(jù)租賃的一版本通信。
[0030]當(dāng)客戶機(jī)202和服務(wù)器204之間的協(xié)商完成時,重定向器210然后可請求應(yīng)用程序206A所請求的目錄元數(shù)據(jù)。在一個實(shí)施例中,重定向器210將首先生成與正在請求的目錄元數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)鍵,例如目錄2鍵。另外,重定向器210也為包括被請求的目錄元數(shù)據(jù)的父目錄生成鍵,在此為目錄I。這些鍵被存儲在查找表214中。如圖2的實(shí)施例中所示,查找表214使目錄鍵與目錄內(nèi)存儲的文件的各個文件鍵以及目錄內(nèi)子目錄的目錄鍵相關(guān)聯(lián)。這些租約鍵在某些實(shí)施例中是全局唯一標(biāo)識符(GUID)。然而,它們不限于GUID。
[0031]重定向器210然后發(fā)送包括對目錄2中目錄元數(shù)據(jù)的請求的分組222,還請求對目錄2中目錄元數(shù)據(jù)的租約。作為租約請求的一部分,重定向器210包括所生成的租約鍵(即,目錄I的目錄鍵和目錄2的目錄鍵)。在一不同的實(shí)施例中,重定向器210不生成任何目錄鍵。相反,分組222允許重定向器210指示服務(wù)器應(yīng)生成租約鍵。
[0032]當(dāng)服務(wù)器204接收目錄租約請求分組222時,它將從目錄2檢索目錄元數(shù)據(jù)。月艮務(wù)器204還確定它是否可向客戶機(jī)201授予所請求的租約。具體地,服務(wù)器可咨詢存儲它已經(jīng)授予的其它租約的租約鍵(目錄鍵和文件鍵)的租約表216。在此示例中,先前沒有客戶機(jī)請求對目錄2的租約,作為結(jié)果,服務(wù)器204將來自目錄租約請求分組222的目錄I的目錄鍵和目錄2的目錄鍵存儲至租約表216。
[0033]服務(wù)器發(fā)送帶有目錄元數(shù)據(jù)和所請求的租約已被授予的指示的目錄租約響應(yīng)分組224。在這種情況中,所請求的租約可包括讀租約、寫租約和/或句柄租約。如果租約是讀租約,則允許客戶機(jī)202從高速緩存212服務(wù)來自應(yīng)用程序206A對目錄2的目錄元數(shù)據(jù)的請求。如果租約是寫租約,則可將對目錄2的目錄元數(shù)據(jù)的任何改變存儲在高速緩存212中。如果租約包括句柄租約,客戶機(jī)202可在應(yīng)用程序206A關(guān)閉該句柄時對目錄2延遲關(guān)閉該句柄。然后可重用該句柄以服務(wù)來自應(yīng)用程序206A以及其它應(yīng)用程序206B和206C的后續(xù)請求。重定向器210將向應(yīng)用程序206A提供目錄元數(shù)據(jù)并還將目錄元數(shù)據(jù)存儲在高速緩存212中。
[0034]稍后,如果第二客戶機(jī)請求對存儲在目錄2中的同一目錄元數(shù)據(jù)的訪問,則在第二客戶機(jī)請求與向客戶機(jī)202基于的句柄租約不兼容的訪問時,服務(wù)器204可撤銷來自客戶機(jī)202的句柄租約。服務(wù)器204將向客戶機(jī)202發(fā)送指示句柄租約正在撤銷的撤銷通知226。在撤銷之后,來自應(yīng)用程序206A、206B和206C對目錄元數(shù)據(jù)的任何請求將要求客戶機(jī)202直接向服務(wù)器204請求新的目錄句柄。在某些實(shí)施例中,對租約的撤銷同步進(jìn)行,且客戶機(jī)202必須發(fā)送已經(jīng)接收到撤銷通知的確認(rèn)228。如果在稍后時間,第二客戶機(jī)對存儲在目錄2中的目錄元數(shù)據(jù)作出修改,則服務(wù)器204可撤銷來自客戶機(jī)202的讀租約,這將使存儲在高速緩存212中的數(shù)據(jù)無效。在撤銷之后,來自應(yīng)用程序206A、206B和206C的對目錄元數(shù)據(jù)的任何請求必須通過直接向服務(wù)器204請求信息來接受服務(wù)。
[0035]如本領(lǐng)域的技術(shù)人員將理解地,高速緩存212中的信息可由客戶機(jī)202為除向應(yīng)用程序206A、206B和206C提供目錄元數(shù)據(jù)以外的目的而使用。作為一個示例,如果文件不存在于目錄中,可使來自應(yīng)用程序206A、206B和206C對遺失文件的請求失敗,而不必將請求重定向至服務(wù)器204。這有助于減少目標(biāo)文件不存在的開口(open)請求的網(wǎng)絡(luò)通信量。
[0036]在一個實(shí)施例中,以上描述的租賃特征是可傳遞的。即,重定向器210可將租約的獲取和撤銷傳至本地應(yīng)用程序。然后可使用該本地應(yīng)用程序來服務(wù)其它遠(yuǎn)程客戶機(jī)。以此方式,租約授予和撤銷實(shí)質(zhì)上被傳遞回最終對等體。
[0037]圖3-6示出根據(jù)各實(shí)施例的操作流程300、400、500和600。操作流程300、400、500和600可在任何合適的計(jì)算環(huán)境中執(zhí)行。例如,操作流程可以由諸如圖1和圖2中所示的系統(tǒng)來執(zhí)行。因此,對操作流程300、400、500和600的描述可參考圖1和圖2的組件中的至少一個。然而,對圖1和圖2的組件的任何這類參考是僅出于描述性目的的,并且應(yīng)當(dāng)理解,圖1和圖2的實(shí)現(xiàn)是操作流程300、400、500和600的非限制性環(huán)境。
[0038]此外,盡管以特定次序順序地示出并描述了操作流程300、400、500和600,但在其它實(shí)施例中,能以不同的順序、多次和/或并行執(zhí)行各個操作。此外,在某些實(shí)施例中,一個或多個操作可被省略或組合。
[0039]圖3示出了根據(jù)用于本地高速緩存目錄元數(shù)據(jù)的一些實(shí)施例的操作流程300。流程300開始于操作302,此處從應(yīng)用程序接收對目錄元數(shù)據(jù)(包括目錄元數(shù)據(jù)的一部分)的請求。在某些實(shí)施例中,操作302由客戶機(jī)上的重定向器接收,重定向器是諸如系統(tǒng)100 (圖1)或系統(tǒng)200(圖2)的分布式文件系統(tǒng)的一部分。流程300不限于使用任何特定的文件訪問協(xié)議來實(shí)現(xiàn)??墒褂萌魏魏线m的文件訪問協(xié)議來實(shí)現(xiàn)流程300的實(shí)施例。
[0040]流程從操作302至判定304,在那里作出所請求的元數(shù)據(jù)是否被存儲在本地高速緩存中的判斷。如果在判定304,作出所請求的元數(shù)據(jù)被存儲在本地高速緩存中的判斷,則流程傳至操作306,在那里從本地高速緩存檢索元數(shù)據(jù)。在操作308,將從本地高速緩存檢索到的元數(shù)據(jù)提供給應(yīng)用程序。流程300在310處結(jié)束。
[0041]然而,如果在判定304,作出目錄元數(shù)據(jù)未被存儲在本地高速緩存中的判斷,則控制從判定304傳至操作312,在那里創(chuàng)建由目錄元數(shù)據(jù)標(biāo)識的文件的目錄鍵。在某些實(shí)施例中,目錄鍵是由執(zhí)行流程300的重定向器生成的。在操作312之后,在操作314生成由目錄元數(shù)據(jù)標(biāo)識的目錄的父目錄的目錄鍵。在某些實(shí)施例中,操作314可包括為目錄的所有祖先生成鍵。鍵可被本地高速緩存。
[0042]在操作316,向文件服務(wù)器發(fā)送請求。請求是針對元數(shù)據(jù)以及允許對元數(shù)據(jù)進(jìn)行本地高速緩存的租約的。在操作318,從文件服務(wù)器接收響應(yīng)。在各實(shí)施例中,響應(yīng)將包括對所請求的租約是否已由文件服務(wù)器授予的指示。流程從操作318傳至操作320,將在那里來自響應(yīng)的元數(shù)據(jù)提供給應(yīng)用程序。在操作320之后,在判定322作出關(guān)于服務(wù)器是否授予所請求的對目錄元數(shù)據(jù)的租約的判斷。如果在判定322,作出租約未被批準(zhǔn)的判斷,則元數(shù)據(jù)不能被本地高速緩存,且流程在310結(jié)束。如果在判定322,作出租約被文件服務(wù)器批準(zhǔn)的判斷,則在操作324,元數(shù)據(jù)被存儲在本地高速緩存。在操作324之后,流程在310結(jié)束。
[0043]現(xiàn)在參考圖4,示出了根據(jù)用于服務(wù)對目錄元數(shù)據(jù)持有句柄租約的客戶機(jī)(它訪問分布式文件系統(tǒng))修改目錄元數(shù)據(jù)的請求的某些實(shí)施例的流程400。在各實(shí)施例中,流程400可在流程300已被執(zhí)行之后被執(zhí)行。因此,流程400在其中已經(jīng)授予用于高速緩存目錄元數(shù)據(jù)的句柄租約的各實(shí)施例中執(zhí)行。
[0044]流程400開始于操作402,在那里接收到修改目錄元數(shù)據(jù)的請求。請求可以例如是向文件寫信息的寫請求,這會改變元數(shù)據(jù);非限定性的示例包括修改日期和文件大小。之前已經(jīng)由文件服務(wù)器向正在執(zhí)行流程400的客戶機(jī)授予用于高速緩存目錄元數(shù)據(jù)的句柄租約。
[0045]在操作404處,用來自請求的信息即修改目錄元數(shù)據(jù)的信息,例如要寫至文件的數(shù)據(jù),來創(chuàng)建分組。因?yàn)橹耙咽谟枳饧s,存在第一目錄鍵和與租約相關(guān)聯(lián)的父目錄的目錄鍵。從而,在操作406中,該目錄鍵被包括在分組中,且在操作408處,各目錄鍵被包括在分組中。分組然后在410處被發(fā)送給服務(wù)器。在某些實(shí)施例中,客戶機(jī)一開始在對開口的請求中發(fā)送目錄鍵和父目錄的目錄鍵。服務(wù)器然后將對該開口上的所有后續(xù)操作使用各鍵。然而,在其它實(shí)施例中,客戶機(jī)可對每一操作提供目錄鍵和父目錄鍵。
[0046]在操作410之后,流程傳至操作412,在那里更新本地高速緩存來反映改變后的元數(shù)據(jù)。換言之,更新本地高速緩存來反映在最新的修改日期、文件大小等中的改變。流程400在414處結(jié)束。
[0047]圖5示出了用于處理撤銷目錄元數(shù)據(jù)上的讀租約的通知的流程500??稍谝呀?jīng)從諸如服務(wù)器204(圖2)的服務(wù)器向客戶機(jī)授予讀租約之后執(zhí)行流程500。流程500開始于操作502處,在那里從服務(wù)器接收到指示正在撤銷之前授予的對目錄元數(shù)據(jù)的讀租約的撤銷通知。在一些實(shí)施例中,由于另一客戶機(jī)已經(jīng)執(zhí)行的動作影響了高速緩存的目錄元數(shù)據(jù)的相關(guān)性,例如對目錄中文件的修改,因此由服務(wù)器發(fā)送撤銷通知。響應(yīng)于接收撤銷通知,流程500傳至操作504,在那里使任何高速緩存的目錄元數(shù)據(jù)無效。在某些實(shí)施例中,操作504包括由客戶機(jī)采取的指示高速緩存不可再被使用來向請求目錄元數(shù)據(jù)的應(yīng)用程序提供目錄元數(shù)據(jù)的多個步驟。
[0048]在操作504之后,流程傳至操作506,在那里向服務(wù)器發(fā)送撤銷通知被成功接收的確認(rèn)。在某些實(shí)施例中,流程500可不包括操作506。在這些實(shí)施例中,客戶機(jī)接收撤銷通知而不向服務(wù)器發(fā)送確認(rèn)。流程然后傳至操作508,在那里通過向服務(wù)器請求目錄元數(shù)據(jù)來服務(wù)對目錄元數(shù)據(jù)的任何請求。流程500在510處結(jié)束。
[0049]圖6示出了根據(jù)用于允許本地高速緩存目錄元數(shù)據(jù)的一些實(shí)施例的操作流程600。在某些實(shí)施例中,流程600可由作為分布式文件系統(tǒng)的一部分的文件服務(wù)器執(zhí)行。
[0050]流程600開始于操作602,在那里接收到對目錄元數(shù)據(jù)和租約的請求。該請求在某些實(shí)施例中由客戶機(jī)發(fā)送,或由作為分布式文件系統(tǒng)的一部分的客戶機(jī)上的重定向器發(fā)送。在操作602之后,流程600傳遞至判定604,在那里作出是否授予在操作602接收的請求中所請求的租約的判斷。判定604可基于多個因素,包括例如是否已對目錄元數(shù)據(jù)授予租約。如果在判定600,作出不授予租約的判斷,則流程傳至操作606,在那里發(fā)送帶有目錄元數(shù)據(jù)的分組。分組將包括所請求的租約未被授予的指示。流程然后在操作608處結(jié)束。
[0051]如果在判定604,作為可授予租約的判斷,則流程600傳至操作610,在那里存儲目錄鍵和父附錄鍵。在某些實(shí)施例中,目錄鍵和父目錄鍵是用作跟蹤向客戶機(jī)授予的租約的租約鍵的GUID。在某些實(shí)施例中,隨對目錄元數(shù)據(jù)的請求和租約請求,在操作602接收目錄鍵和父目錄鍵。在該實(shí)施例中,目錄和父目錄鍵由在操作602發(fā)送請求的客戶機(jī)生成。在其它實(shí)施例中,目錄鍵和父目錄鍵可由服務(wù)器生成,并且然后在操作610處被存儲在租約表中。
[0052]在某些實(shí)施例中,目錄鍵和父目錄鍵表達(dá)兩個或多個開口句柄之間的容器-孩子關(guān)系。這對文件鍵和目錄鍵成立,該文件鍵與該目錄中的文件相關(guān)聯(lián)。例如,假定存在兩個句柄開口 Hl和H2。Hl可與文件鍵=Kl和目錄鍵=D相關(guān)聯(lián)。H2可與文件鍵=K2和目錄鍵=D相關(guān)聯(lián)。各鍵指不由這些句柄所指的文件駐留在同一目錄內(nèi)。
[0053]再次參考圖6,在操作612,將帶有所請求的目錄元數(shù)據(jù)和對租約批準(zhǔn)的指示的響應(yīng)分組發(fā)送給客戶機(jī)。客戶機(jī)然后可根據(jù)所授予的租約本地地高速緩存目錄元數(shù)據(jù)。
[0054]在操作614,接收修改目錄元數(shù)據(jù)的請求。該請求例如可以是將附加信息寫入文件中。這將例如通過改變最后修改時間或文件大小來修改目錄元數(shù)據(jù)。流程從操作614傳至判定616,在那里作出修改目錄元數(shù)據(jù)的請求是否來自租約持有者的判斷。
[0055]在一個實(shí)施例中,在判定616處所作的判斷是通過將與其上執(zhí)行修改目錄元數(shù)據(jù)的句柄相關(guān)聯(lián)的租約鍵同與先前提供給客戶機(jī)的句柄相關(guān)聯(lián)的租約鍵進(jìn)行比較來作出的。如上所述,在某些實(shí)施例中,客戶機(jī)生成與文件句柄(或目錄句柄)相關(guān)聯(lián)的租約鍵,且因此每一鍵對于特定客戶機(jī)將是唯一的。在一個示例中,提供給客戶機(jī)的句柄Hl與文件鍵=Kl和目錄鍵=D相關(guān)聯(lián)。如果稍后服務(wù)器接收修改與句柄H2相關(guān)聯(lián)的元數(shù)據(jù)的操作,則月艮務(wù)器將與句柄H2相關(guān)聯(lián)的租約鍵同與句柄Hl相關(guān)聯(lián)的租約鍵進(jìn)行比較。如果例如H2與文件鍵=K2和目錄鍵=D相關(guān)聯(lián),服務(wù)器判斷,由于Hl和H2的目錄鍵相同,因此在目錄D上具有租約的同一客戶機(jī)作出了修改,且因此租約不必被撤銷。然而,如果H2與文件鍵=K2和目錄鍵=Dl相關(guān)聯(lián),則服務(wù)器將判斷由于與句柄Hl和H2相關(guān)聯(lián)的目錄鍵是不同的,因此必須撤銷租約。
[0056]如果作出租約持有者是對目錄元數(shù)據(jù)作出修改的那個的判斷,則流程傳至操作618,其中更新文件系統(tǒng)以反映修改后的目錄元數(shù)據(jù)。流程600在608處結(jié)束。
[0057]如果在判定616作出請求不是來自租約持有者的判斷,則流程傳至判定620,在那里作出所請求的修改是否與已給予另一客戶機(jī)的租約不一致的判斷。如果請求并非不一致,則流程傳至操作618并在608結(jié)束。
[0058]如果在判定620處作出請求與租約不一致的判斷,則流程傳至操作622,在那里向當(dāng)前正持有目錄元數(shù)據(jù)上的租約的客戶機(jī)發(fā)送撤銷通知。發(fā)送撤銷以便于在訪問目錄元數(shù)據(jù)的所有客戶機(jī)之間維護(hù)目錄元數(shù)據(jù)的相關(guān)性。在操作624處接收撤銷通知的確認(rèn),之后流程傳至操作618并在608結(jié)束。
[0059]圖7示出可用于實(shí)現(xiàn)此處所描述的各實(shí)施例的通用計(jì)算機(jī)環(huán)境700。計(jì)算機(jī)系統(tǒng)700僅是計(jì)算環(huán)境的一個示例,而非旨在對計(jì)算機(jī)和網(wǎng)絡(luò)體系結(jié)構(gòu)的使用范圍或功能提出任何限制。計(jì)算機(jī)系統(tǒng)700也不應(yīng)被解釋成對于在示例計(jì)算機(jī)系統(tǒng)700中所示出的任一組件或其組合有任何依賴或要求。在某些實(shí)施例中,系統(tǒng)700可用作以上參考圖1和圖2所述的客戶機(jī)和/或服務(wù)器。
[0060]在其最基本配置中,系統(tǒng)700通常包括至少一個處理單元702和存儲器704。取決于計(jì)算設(shè)備的確切配置和類型,存儲器704可以是易失性的(如RAM)、非易失性的(如ROM、閃存等)或是兩者的某種組合。該最基本配置在圖7中由虛線706來例示。系統(tǒng)存儲器704存儲在系統(tǒng)700上執(zhí)行的應(yīng)用程序。例如,存儲器704可存儲以上參考圖2描述的報告查找表214。
[0061]此處所使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲介質(zhì)。計(jì)算機(jī)存儲介質(zhì)可包括以用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。系統(tǒng)存儲器704、可移動存儲和不可移動存儲708都是計(jì)算機(jī)存儲介質(zhì)示例(即,存儲器存儲)。計(jì)算機(jī)存儲介質(zhì)可包括,但不限于,RAM、ROM、電可擦除只讀存儲器(EEPROM)、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設(shè)備、或可用于存儲信息并且可由計(jì)算設(shè)備700訪問的任何其它介質(zhì)。任何這樣的計(jì)算機(jī)存儲介質(zhì)可以是設(shè)備700的一部分。計(jì)算設(shè)備700還可具有輸入設(shè)備714,諸如鍵盤、鼠標(biāo)、筆、聲音輸入設(shè)備、觸摸輸入設(shè)備等。還可包括輸出設(shè)備616,如顯示器、揚(yáng)聲器、打印機(jī)等。上述設(shè)備是示例并且可使用其他設(shè)備。
[0062]此處所使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)還可包括通信介質(zhì)。通信介質(zhì)可由諸如載波或其他傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)來體現(xiàn),并且包括任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”可描述具有以對該信號中的信息編碼的方式設(shè)定或者改變的一個或多個特征的信號。作為示例而非限制,通信介質(zhì)可包括諸如有線網(wǎng)絡(luò)或直接線連接的有線介質(zhì),以及諸如聲學(xué)、射頻(RF)、紅外線和其他無線介質(zhì)的無線介質(zhì)。
[0063]本說明書通篇引述了“一個實(shí)施例”或“實(shí)施例”,這意味著在至少一個實(shí)施例中包括特定描述的特征、結(jié)構(gòu)或特性。因此,對這樣短語的使用可指的是一個以上的實(shí)施例。而且,在一個或多個實(shí)施例中,可以用任何合適的方式組合所描述的特征、結(jié)構(gòu)或特性。
[0064]然而,本領(lǐng)域技術(shù)人員會認(rèn)識到本發(fā)明也可在沒有一個或多個具體細(xì)節(jié)的情況下實(shí)施,或者采用其它方法、資源、材料等來實(shí)現(xiàn)。僅僅為了避免模糊本發(fā)明的各方面,在其它情況下,未示出和詳述公知的結(jié)構(gòu)、資源或操作。
[0065]雖然示出和描述了示例實(shí)施例和應(yīng)用,但是應(yīng)該理解本發(fā)明不限于上述精確配置和資源??梢詫Υ颂幑_的方法和系統(tǒng)的排列、操作以及細(xì)節(jié)作出對本領(lǐng)域技術(shù)人員顯而易見的各種修改、改變和變化,而不背離所要求保護(hù)的本發(fā)明的范圍。
【權(quán)利要求】
1.一種方法,包括: 從請求設(shè)備接收對目錄元數(shù)據(jù)的請求,所述請求包括: 對包含所述目錄元數(shù)據(jù)的目錄的句柄的請求; 對租約的請求,所述租約允許本地高速緩存目錄元數(shù)據(jù)直到所述租約撤銷; 鍵,所述鍵與包括所請求的目錄元數(shù)據(jù)的第一目錄相關(guān)聯(lián);以及目錄鍵,所述目錄鍵與第二目錄相關(guān)聯(lián),所述第一目錄被包括在所述第二目錄中;以及向所述請求設(shè)備發(fā)送響應(yīng),所述響應(yīng)包括所述目錄元數(shù)據(jù)以及批準(zhǔn)對所述租約的所述請求的指示。
2.如權(quán)利要求1所述的方法,其特征在于,對所述租約的所述請求包括指示出對以下中的一個或多個的請求的標(biāo)記:讀高速緩存、寫高速緩存、以及句柄高速緩存。
3.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 接收修改目錄元數(shù)據(jù)的第二請求;以及 確定所述第二請求是否是從第二請求設(shè)備接收的。
4.如權(quán)利要求3所述的方法,其特征在于,確定所述第二請求是否是從第二請求設(shè)備接收的包括將來自所述第二請求的目錄鍵與之前存儲的目錄鍵進(jìn)行比較。
5.如權(quán)利要求4所述的方法,其特征在于,還包括響應(yīng)于確定來自所述第二請求的目錄鍵與之前接收到的目錄鍵不同,向所述請求設(shè)備發(fā)送撤銷所述租約的撤銷通知。
6.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 接收修改所述第二目錄內(nèi)存儲的文件的第二請求,所述第二請求包括與所述文件相關(guān)聯(lián)的文件鍵以及第二目錄鍵。
7.如權(quán)利要求1所述的方法,其特征在于,所述目錄鍵和所述鍵被存儲在查找表中。
8.如權(quán)利要求7所述的方法,其特征在于,所述查找表存儲所述鍵與所述目錄鍵的關(guān)聯(lián)。
9.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 發(fā)送所述租約的撤銷通知;以及 響應(yīng)于發(fā)送所述租約的撤銷通知,接收對接收到所述撤銷通知的確認(rèn)。
10.如權(quán)利要求7所述的方法,其特征在于,撤銷通知包括所述目錄元數(shù)據(jù)已被從所述請求設(shè)備可訪問的本地高速緩存中移除的通知。
11.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括發(fā)送所述目錄元數(shù)據(jù)已改變的通知。
12.—種系統(tǒng),包括: 用于從請求設(shè)備接收對目錄元數(shù)據(jù)的請求的裝置,所述請求包括: 對包含所述目錄元數(shù)據(jù)的目錄的句柄的請求; 對租約的請求,所述租約允許本地高速緩存目錄元數(shù)據(jù)直到所述租約撤銷; 鍵,所述鍵與包括所請求的目錄元數(shù)據(jù)的第一目錄相關(guān)聯(lián);以及目錄鍵,所述目錄鍵與第二目錄相關(guān)聯(lián),所述第一目錄被包括在所述第二目錄中;以及用于向所述請求設(shè)備發(fā)送響應(yīng),所述響應(yīng)包括所述目錄元數(shù)據(jù)以及批準(zhǔn)對所述租約的所述請求的指示的裝置。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,對所述租約的所述請求包括指示出對以下中的一個或多個的請求的標(biāo)記:讀高速緩存、寫高速緩存、以及句柄高速緩存。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括: 用于接收修改目錄元數(shù)據(jù)的第二請求的裝置;以及 用于確定所述第二請求是否是從第二請求設(shè)備接收的的裝置。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,用于確定所述第二請求是否是從第二請求設(shè)備接收的的裝置包括用于將來自所述第二請求的目錄鍵與之前存儲的目錄鍵進(jìn)行比較的裝置。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,還包括用于響應(yīng)于確定來自所述第二請求的目錄鍵與之前接收到的目錄鍵不同,向所述請求設(shè)備發(fā)送撤銷所述租約的撤銷通知的>j-U ρ?α裝直。
17.如權(quán)利要求11所述的系統(tǒng),其特征在于,還包括: 用于發(fā)送所述租約的撤銷通知的裝置;以及 用于響應(yīng)于發(fā)送所述租約的撤銷通知,接收對接收到所述撤銷通知的確認(rèn)的裝置。
18.—種系統(tǒng),包括: 處理器;以及 耦合于所述處理器的存儲器,所述存儲器用于存儲指令,所述指令在由所述處理器執(zhí)行時執(zhí)行一種方法,所述方法包括: 接收對目錄元數(shù)據(jù)的請求,所述請求包括: 對包含所述目錄元數(shù)據(jù)的目錄的句柄的請求; 對允許本地高速緩存目錄元數(shù)據(jù)的租約的請求; 與包括所請求的目錄元數(shù)據(jù)的第一目錄相關(guān)聯(lián)的鍵;以及 與第二目錄相關(guān)聯(lián)的目錄鍵;以及 向所述請求設(shè)備發(fā)送批準(zhǔn)響應(yīng),所述響應(yīng)包括批準(zhǔn)對所述租約的所述請求的指示。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述響應(yīng)還包括所述目錄元數(shù)據(jù)。
20.如權(quán)利要求18所述的系統(tǒng),其特征在于,對所述租約的所述請求包括指示出對以下中的一個或多個的請求的標(biāo)記:讀高速緩存、寫高速緩存、以及句柄高速緩存。
【文檔編號】G06F17/30GK104268242SQ201410513205
【公開日】2015年1月7日 申請日期:2011年9月16日 優(yōu)先權(quán)日:2010年9月17日
【發(fā)明者】D·M·克魯斯, M·喬治, S·C·哈弗瓦拉, C·G·奧爾雷德, N·R·克里斯蒂安森 申請人:微軟公司