欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

目錄機會鎖的制作方法與工藝

文檔序號:11971680閱讀:170來源:國知局
目錄機會鎖的制作方法與工藝
目錄機會鎖

背景技術(shù):
機會鎖(“oplock”)由文件系統(tǒng)使用來向諸如本地和/或遠程應(yīng)用的客戶端提供高速緩存文件數(shù)據(jù)的能力,同時提供在多客戶端讀/寫同一文件時提升數(shù)據(jù)一致性的機制。此外,機會鎖向應(yīng)用提供從訪問文件時“回退”(backoff)的能力,以便該應(yīng)用不會干擾其他應(yīng)用對該文件的訪問。在一個例子中,第一應(yīng)用可針對在文件系統(tǒng)上存儲的文本文件協(xié)商機會鎖。第一應(yīng)用可在本地高速緩存對應(yīng)于文本文件的數(shù)據(jù),以降低在訪問這樣的數(shù)據(jù)時的網(wǎng)絡(luò)流量和/或訪問請求(例如,可在本地對高速緩存的數(shù)據(jù)執(zhí)行多次寫)。如果第二應(yīng)用試圖訪問文件系統(tǒng)上的該文本文件,則文件系統(tǒng)可通過向第一應(yīng)用發(fā)送通知來解鎖機會鎖,以將文本文件的改變更新回到文件系統(tǒng)。以此方式,文本文件可在第一應(yīng)用、第二應(yīng)用和文件系統(tǒng)之間保持一致。不幸的是,目前機會鎖可用于文件,但不用于目錄(directory)。因此,如果第一應(yīng)用在本地高速緩存來自文件系統(tǒng)的目錄內(nèi)容,并且第二應(yīng)用改變該文件系統(tǒng)上的目錄,則第一應(yīng)用本地高速緩存的目錄內(nèi)容可能是舊的(stale),這是因為未向第一應(yīng)用通知第二應(yīng)用對于目錄的改變。

技術(shù)實現(xiàn)要素:
提供了本發(fā)明內(nèi)容以按照簡化形式介紹下面將在具體實施方式中進一步描述的一組概念。本發(fā)明內(nèi)容不意圖標識所要求保護主題的關(guān)鍵因素或必要特征,也不意圖用來限制所要求保護主題的范圍。這里公開了用于管理目錄機會鎖的一個或多個系統(tǒng)和/或技術(shù)等。目錄機會鎖可被解釋為目錄上的機會鎖(例如,文件夾、映射的盤驅(qū)動器、位于遠程服務(wù)器上的目錄等)??蓮目蛻舳耍ɡ纾募芾響?yīng)用、“另存為”對話框、搜索索引器服務(wù)、病毒掃描器和/或其他客戶端)接收對在目錄上的目錄機會鎖的機會鎖請求??衫斫?,在一個例子中,客戶端可被解釋為包括與目錄相關(guān)地在本地(例如,在同一設(shè)備上,如膝上型計算機、桌上型計算機等)或遠程(例如,在不同/分開的設(shè)備上,如服務(wù)器等)執(zhí)行的一個或多個應(yīng)用(例如,目錄駐留的設(shè)備)。機會鎖請求可包括第一目標關(guān)鍵字和第一父關(guān)鍵字。第一目標關(guān)鍵字可指定對應(yīng)于目錄和請求目錄機會鎖的客戶端的唯一標識符。第一父關(guān)鍵字可指定對應(yīng)于包括該目錄的父目錄和請求該目錄機會鎖的客戶端的唯一標識符。可基于機會鎖請求生成目錄機會鎖關(guān)鍵字。請求和被授予目錄機會鎖的客戶端可在本地高速緩存目錄的目錄內(nèi)容(例如,目錄元數(shù)據(jù)、該目錄中的文件和子目錄列表等)??衫斫?,例如,因為客戶端可在本地高速緩存的目錄內(nèi)容上執(zhí)行I/O操作而無需直接通過網(wǎng)絡(luò)訪問目錄,所以可降低網(wǎng)絡(luò)流量。類似地,通過允許客戶端(如本地應(yīng)用)高速緩存其自己的目錄副本,可減少訪問請求的數(shù)目。以此方式,客戶端可假設(shè)本地高速緩存的目錄內(nèi)容是最新的。另外,客戶端可被通知有關(guān)訪問該目錄和/或目錄內(nèi)的對象的嘗試,這種嘗試可能使得本地高速緩存的目錄內(nèi)容變“舊”(例如,高速緩存的目錄內(nèi)容可包括目錄內(nèi)的5個文件的列表,然而,另一客戶端可能向該目錄再增加3個文件,這不會體現(xiàn)在高速緩存的目錄內(nèi)容中)。具體地,可接收訪問目錄內(nèi)的對象的訪問請求(例如,第二客戶端可能正試圖修改目錄內(nèi)的文件對象;對應(yīng)于目錄機會鎖的客戶端可能正試圖刪除目錄內(nèi)的文件對象等)??衫斫猓L問請求可包括在目錄上執(zhí)行操作的請求(例如,重命名或刪除目錄)。訪問請求可包括第二目標關(guān)鍵字和第二父關(guān)鍵字。第二目標關(guān)鍵字可指定對應(yīng)于目錄內(nèi)的對象和提出訪問請求的客戶端的唯一標識符。第二父關(guān)鍵字可指定對應(yīng)于目錄(例如,該目錄是目標對象的父目錄)和提出訪問請求的客戶端的唯一標識符。對應(yīng)于目錄的第二父關(guān)鍵字可與對應(yīng)于目錄的第一目標關(guān)鍵字進行比較,以確定第二父關(guān)鍵字和第一目標關(guān)鍵字是否匹配。即,因為各自的關(guān)鍵字基于同一客戶端,所以如果擁有目錄機會鎖的客戶端與試圖訪問目錄內(nèi)的對象的客戶端是同一客戶端,則第二父關(guān)鍵字可與第一目標關(guān)鍵字相匹配。否則,因為各自的關(guān)鍵字基于不同客戶端,所以如果嘗試訪問目錄內(nèi)的對象的客戶端不同于擁有目錄機會鎖的客戶端,則第二父關(guān)鍵字與第一目標關(guān)鍵字可能不匹配。如果第二父關(guān)鍵字匹配第一目標關(guān)鍵字,則因為擁有目錄機會鎖的客戶端與試圖訪問目錄內(nèi)的對象的客戶端是同一客戶端,所以目錄機會鎖不解鎖。這樣的客戶端可知曉要利用其自己的改變來更新其本地高速緩存的目錄內(nèi)容。相反,如果第二父關(guān)鍵字不匹配第一目標關(guān)鍵字,則因為擁有目錄機會鎖的客戶端不同于試圖訪問目錄內(nèi)的對象的客戶端,所以目錄機會鎖被解鎖。當(dāng)訪問目錄內(nèi)的對象的客戶端作出影響目錄數(shù)據(jù)的改變時,擁有目錄機會鎖的客戶端可能已經(jīng)在本地高速緩存了變“舊”的目錄內(nèi)容。因此,擁有目錄機會鎖的客戶端將被通知解鎖,從而客戶端可采取適當(dāng)行動以提升其自身、其他客戶端和原始目錄數(shù)據(jù)之間的數(shù)據(jù)一致性。為了實現(xiàn)上文和相關(guān)目的,以下說明和附圖闡述了特定示例方面和實現(xiàn)方式。這些僅僅指示了其中可采用一個或多個方面的各種方式中的一些。,根據(jù)以下結(jié)合附圖考慮的詳細說明,本公開的其他方面、優(yōu)點和新穎特征將變得清楚。附圖說明圖1是當(dāng)?shù)诙蛻舳藙h除實際目錄內(nèi)的文件時第一客戶端本地高速緩存的目錄內(nèi)容變舊的例子的說明。圖2是說明管理目錄機會鎖的示例方法的流程圖。圖3是說明生成目錄機會鎖的示例方法的流程圖。圖4是說明管理目錄機會鎖的示例系統(tǒng)的部件框圖。圖5是在其上請求目錄機會鎖的目錄例子的說明,。圖6是目錄例子的說明,其中不同于擁有該目錄上的目錄機會鎖的第一客戶端的第二客戶端在該目錄上請求訪問。圖7是目錄例子的說明,其中擁有該目錄上的目錄機會鎖的第一客戶端在該目錄上請求訪問。圖8是示例計算機可讀介質(zhì)的說明,其中可包括被配置為實施這里闡述的一個或多個規(guī)定(provision)的處理器可執(zhí)行指令。圖9說明了示例計算環(huán)境,其中可實現(xiàn)這里闡述的一個或多個規(guī)定。具體實施方式現(xiàn)在參照附圖描述所要求保護的主題,附圖中始終使用相同的附圖標記表示相同的元素。在以下描述中,為了解釋的目的,闡述了多個具體細節(jié)以便提供對所要求保護的主題的透徹理解。然而,很明顯的是可以實踐所要求保護的主題而不用這些具體細節(jié)。在其他實例中,以框圖的形式說明了結(jié)構(gòu)和設(shè)備以便有助于描述所要求保護的主題。由于網(wǎng)絡(luò)計算和多任務(wù)的出現(xiàn),常常在多個客戶端(如計算環(huán)境內(nèi)的應(yīng)用或網(wǎng)絡(luò)環(huán)境內(nèi)的計算機)之間共享目錄和文件。在一個例子中,文件服務(wù)器系統(tǒng)可向網(wǎng)絡(luò)設(shè)備提供對共享目錄和文件的訪問。在另一例子中,本地客戶端應(yīng)用可試圖訪問本地目錄以便高速緩存本地目錄的內(nèi)容。然而,當(dāng)多客戶端(無論網(wǎng)絡(luò)上或單個計算環(huán)境內(nèi))訪問相同的數(shù)據(jù)時,出現(xiàn)了網(wǎng)絡(luò)帶寬、資源利用(例如,CPU使用、系統(tǒng)總線、存儲設(shè)備等)和/或數(shù)據(jù)一致性問題。因此,可實現(xiàn)機會鎖(“oplock”)以允許客戶端本地高速緩存文件數(shù)據(jù)。即,客戶端可請求在文件數(shù)據(jù)上的機會鎖,從而客戶端可假設(shè)只要機會鎖沒有被試圖訪問和/或改動實際文件數(shù)據(jù)的另一客戶端嘗試解鎖,該文件數(shù)據(jù)就不會改變??蛻舳丝蓪Ρ镜馗咚倬彺娴奈募?shù)據(jù)進行讀/寫,而不會產(chǎn)生訪問例如被通過網(wǎng)絡(luò)存儲的實際文件數(shù)據(jù)的網(wǎng)絡(luò)流量。當(dāng)完成時,客戶端可通過單次更新,利用本地高速緩存的文件數(shù)據(jù)來更新實際文件數(shù)據(jù)。如果第二客戶端試圖訪問文件數(shù)據(jù),則可解鎖機會鎖,并且第二客戶端等待,同時擁有機會鎖的客戶端被通知該解鎖。以此方式,客戶端可利用本地高速緩存的文件數(shù)據(jù)來更新實際文件數(shù)據(jù),并提供對解鎖的確認,從而第二客戶端可訪問更新了的文件數(shù)據(jù),而意識不到與第一客戶端之間的交互。不幸的是,目前機會鎖可用于文件數(shù)據(jù),但不能用于目錄數(shù)據(jù)。缺少用于目錄數(shù)據(jù)的機會鎖,可導(dǎo)致不必要的訪問請求,使得高速緩存的目錄數(shù)據(jù)變“舊”,和/或無法刪除目錄,因為客戶端(例如,搜索索引器,病毒掃描器等)可能無法意識到另一客戶端正試圖刪除目錄和/或其內(nèi)容。在一個例子中,本地高速緩存了目錄的目錄內(nèi)容的客戶端在試圖使得本地高速緩存的目錄內(nèi)容保持相對于來自其他客戶端的對于實際目錄的潛在改變是最新方面可能必須實現(xiàn)刷新機制。因為實際目錄尚未被改變,所以刷新機制可能執(zhí)行不必要的刷新。此外,因為另一客戶端改變了實際目錄且本地高速緩存的目錄內(nèi)容尚未刷新,所以存在本地高速緩存的目錄內(nèi)容變“舊”的一段時間。因此,這里提供了一個或多個管理目錄機會鎖的系統(tǒng)和/或技術(shù)。具體地,可基于包括第一目標關(guān)鍵字和第一父關(guān)鍵字的機會鎖的請求,為第一客戶端創(chuàng)建目錄的目錄機會鎖。第一客戶端可在本地高速緩存目錄的目錄內(nèi)容以降低網(wǎng)絡(luò)流量。為提升數(shù)據(jù)一致性和減輕高速緩存的目錄內(nèi)容變“舊”,當(dāng)?shù)诙蛻舳嗽噲D訪問目錄時,可向第一客戶端提供通知(例如,不依賴于計時器的立即通知)。以此方式,第一客戶端可回沖(flushback)對于目錄的改變,使得第二客戶端可訪問目錄的最新版本。此外,因為如果第二客戶端對實際目錄和/或在實際目錄內(nèi)的對象進行改變,則高速緩存內(nèi)容可能是“舊”的,所以可通知第一客戶端根據(jù)實際目錄來刷新本地高速緩存的目錄內(nèi)容。如果第二客戶端與第一客戶端并非同一客戶端,則可解鎖目錄機會鎖。然而,如果第二和第一客戶端是同一客戶端,則因為客戶端可意識到自己對于目錄的改變,所以可以不解鎖目錄機會鎖。圖1說明當(dāng)?shù)诙蛻舳藙h除實際目錄內(nèi)的文件時,第一客戶端本地高速緩存的目錄內(nèi)容變“舊”的例子100。服務(wù)器102可包括被配置為向客戶端提供對目錄和/或文件的訪問的文件系統(tǒng)。例如,服務(wù)器102可包括娛樂(文件夾)目錄。娛樂(文件夾)目錄可包括音樂(文件夾)目錄、圖像(文件夾)目錄、音樂播放列表(文件)、音樂播放器(文件)、圖像編輯器(文件)和圖像瀏覽器(文件)??蛻舳耍?)104(例如,文件管理應(yīng)用)可訪問服務(wù)器102上的娛樂(文件夾)目錄以向用戶提供娛樂(文件夾)目錄的視圖。為減輕網(wǎng)絡(luò)流量,客戶端(1)104可本地存儲對應(yīng)于娛樂(文件夾)目錄的高速緩存的目錄內(nèi)容??蛻舳耍?)104可周期性地或根據(jù)需要輪詢服務(wù)器102以刷新高速緩存的目錄內(nèi)容,從而向用戶提供文件結(jié)構(gòu)的當(dāng)前視圖。因為服務(wù)器102上的目錄內(nèi)容可能尚未改變,刷新高速緩存的目錄內(nèi)容可能產(chǎn)生不必要的網(wǎng)絡(luò)流量。在另一客戶端對娛樂(文件夾)目錄進行改變的時間和對高速緩存的目錄內(nèi)容(例如,娛樂(文件夾)目錄的過期視圖)進行刷新的時間之間,本地存儲在客戶端(1)104上的高速緩存的目錄內(nèi)容可能變“舊”。例如,客戶端(2)可能刪除106服務(wù)器102上的音樂播放列表(文件)。然而,因為在娛樂(文件夾)目錄上沒有目錄機會鎖,所以在執(zhí)行刷新之前,可能未向客戶端(1)104通知可影響本地存儲在客戶端(1)104上的高速緩存的目錄內(nèi)容的“正確性”的刪除106。即,如果已經(jīng)向客戶端(1)104提供了娛樂(文件夾)目錄上的目錄機會鎖,則可向客戶端(1)104提供客戶端(2)所請求的、對應(yīng)于刪除106的訪問的通知(例如,立即通知)。由圖2的示例方法200來說明管理目錄機會鎖的一個實施例。在202,方法開始。在204,例如從第一客戶端接收對目錄上的目錄機會鎖的機會鎖請求。機會鎖請求可包括第一目標關(guān)鍵字和/或第一父關(guān)鍵字。第一目標關(guān)鍵字可指定對應(yīng)于第一客戶端和該目錄的唯一標識符。第一父關(guān)鍵字可指定對應(yīng)于第一客戶端和包括該目錄的父目錄的唯一標識符。在206,可基于機會鎖請求生成目錄機會鎖。在一個例子中,可生成讀高速緩存目錄機會鎖,以便第一客戶端可本地高速緩存從目錄中讀取的目錄內(nèi)容。在另一個例子中,可生成讀-句柄(handle)高速緩存目錄機會鎖,以便第一客戶端可本地高速緩存從目錄讀取的目錄內(nèi)容并打開目錄上的句柄。在另一個例子中,可生成讀-寫-句柄高速緩存目錄機會鎖,以便第一客戶端可本地高速緩存目錄中文件的創(chuàng)建、刪除和/或修改(例如,屬性修改,如只讀,文件大小等)。以此方式,可為第一客戶端管理目錄機會鎖。具體地,因為不同于第一客戶端的第二客戶端正試圖訪問/修改目錄和/或目錄內(nèi)的對象,這可能改變目錄的當(dāng)前狀態(tài)(例如,第二客戶端可向目錄增加文件對象,以使得目錄的當(dāng)前狀態(tài)可能包括更大的總體大小和所增加的文件對象),或第一客戶端已對目錄進行了必須在第二客戶端意識到之前回沖的改變,則可向第一客戶端通知目錄機會鎖的解鎖。解鎖的通知可使得第一客戶端得知本地高速緩存的目錄內(nèi)容可能是舊的或者由第一客戶端作出的改變需要從其本地高速緩存回沖至文件系統(tǒng)。在208,可接收訪問目錄內(nèi)的對象的訪問請求。例如,第二客戶端(可能是與第一客戶端相同或不同的客戶端)可請求訪問以對目錄內(nèi)的文件和/或子目錄執(zhí)行I/O操作(例如,修改,增加,刪除等)??衫斫猓L問請求可包括在目錄上執(zhí)行操作(例如,重命名或刪除目錄)的請求。訪問請求可包括第二目標關(guān)鍵字和/或第二父關(guān)鍵字。第二目標關(guān)鍵字可指定對應(yīng)于第二客戶端和目錄內(nèi)的對象的唯一標識符。第二父關(guān)鍵字可指定對應(yīng)于第二客戶端和目錄(例如,因為該目錄包括對象,所以該目錄是對象的父目錄)的唯一標識符。可理解,如果第一客戶端和第二客戶端是同一客戶端,則第二父關(guān)鍵字可與第一目標關(guān)鍵字有相同的標識符(例如,第二父關(guān)鍵字指定客戶端和目錄,并且第一目標關(guān)鍵字指定該客戶端和目錄)。在210,如果第二父關(guān)鍵字不匹配第一目標關(guān)鍵字,則目錄機會鎖被解鎖。例如,在擁有目錄機會鎖的第一客戶端不同于試圖訪問目錄內(nèi)的對象的第二客戶端的情況下,第二父關(guān)鍵字可能不匹配第一目標關(guān)鍵字。可向第一客戶端通知該目錄機會鎖解鎖,使得第一客戶端可得知本地高速緩存的目錄內(nèi)容可能已經(jīng)變“舊”。如果訪問請求對應(yīng)于第二客戶端在目錄上執(zhí)行操作(例如,刪除目錄,設(shè)置配置操作,重命名目錄等)的請求,則向發(fā)出訪問請求的第二客戶端發(fā)送通知以等待直到由第一客戶端確認解鎖為止。在212,如果第二父關(guān)鍵字匹配第一目標關(guān)鍵字,則目錄機會鎖不解鎖。也就是說,因為擁有目錄機會鎖的第一客戶端是發(fā)出訪問請求的第二客戶端,所以第二父關(guān)鍵字匹配第一目標關(guān)鍵字。以此方式,當(dāng)擁有目錄機會鎖的客戶端是訪問目錄內(nèi)的對象的客戶端時,目錄機會鎖不被解鎖??蛻舳藨?yīng)當(dāng)知道其對目錄作出的改變,并因此應(yīng)當(dāng)能夠更新本地高速緩存的目錄內(nèi)容,而無需目錄機會鎖的解鎖通知。在一個例子中,搜索索引器可發(fā)出機會鎖請求??缮赡夸浀哪夸洐C會鎖并將其分配給搜索索引器。第二客戶端(如文件管理應(yīng)用)可發(fā)出刪除該目錄的訪問請求。如果沒有通知所嘗試的刪除,搜索索引器可繼續(xù)訪問該目錄,這可能導(dǎo)致目錄刪除失敗。例如,用戶可能試圖刪除搜索索引器目前正在索引的目錄。然而,如果在搜索索引器打開目錄的情況下發(fā)起刪除,則刪除可能失敗。因此,用戶可繼續(xù)看到目錄和/或可能無法重用目錄名(例如,因為目錄尚未被刪除)。相應(yīng)地,如果第二父關(guān)鍵字不匹配第一目標關(guān)鍵字,則搜索索引器創(chuàng)建的目錄機會鎖可被解鎖。以此方式,可通知搜索索引器退出目錄,使得用戶可以刪除目錄。在214,方法結(jié)束。通過圖3中的示例方法300說明生成目錄機會鎖的一個實施例。在302,方法開始。在304,生成對應(yīng)于目錄和客戶端的目錄機會鎖。也就是說,目錄機會鎖是在目錄(例如,文件夾)上(與文件相反)的機會鎖。在306,方法結(jié)束。圖4說明被配置為管理目錄機會鎖的系統(tǒng)400的例子。系統(tǒng)400可包括機會鎖生成器406和/或機會鎖管理器408。機會鎖生成器406可被配置為接收對目錄上的目錄機會鎖412的機會鎖請求410。例如,可從第一客戶端402接收機會鎖請求410。機會鎖請求410可包括第一目標關(guān)鍵字和/或第一父關(guān)鍵字。第一目標關(guān)鍵字可指定對應(yīng)于第一客戶端402和該目錄的唯一標識符。第一父關(guān)鍵字可指定對應(yīng)于第一客戶端402和包括該目錄的父目錄的唯一標識符。機會鎖生成器406可基于機會鎖請求410生成目錄機會鎖412。在一個例子中,目錄機會鎖412可包括讀-高速緩存機會鎖。在另一個例子中,目錄機會鎖412可包括讀-句柄-高速緩存機會鎖。機會鎖生成器406可向第一客戶端402發(fā)送目錄機會鎖授予通知414。以此方式,第二客戶端402可本地存儲高速緩存的目錄內(nèi)容416內(nèi)的目錄內(nèi)容。第一客戶端402可在高速緩存的目錄內(nèi)容416上有效地執(zhí)行I/O操作,而無需產(chǎn)生訪問實際目錄的不必要網(wǎng)絡(luò)流量。機會鎖管理器408可被配置為接收訪問目錄內(nèi)的對象的訪問請求418。例如,可從請求訪問目錄、目錄內(nèi)的文件和/或目錄內(nèi)的子目錄的第二客戶端404接收訪問請求418。訪問請求418可包括第二目標關(guān)鍵字和/或第二父關(guān)鍵字。第二目標關(guān)鍵字可指定對應(yīng)于第二客戶端404和目錄內(nèi)的對象的唯一標識符。第二父關(guān)鍵字可指定對應(yīng)于第二客戶端404和目錄的唯一標識符。可理解,第一客戶端402和第二客戶端404可為同一或不同客戶端,這可影響是否由訪問請求418來解鎖目錄機會鎖412。機會鎖管理器408可被配置為執(zhí)行匹配操作420以確定第一目標關(guān)鍵字是否匹配第二父關(guān)鍵字。因為匹配表明第一客戶端402和第二客戶端404是同一客戶端,所以如果第二父關(guān)鍵字匹配第一目標關(guān)鍵字,則機會鎖管理器408可被配置為不解鎖目錄機會鎖412,因此不必通知客戶端它自己對目錄的訪問。如果第二父關(guān)鍵字不匹配第一目標關(guān)鍵字,則機會鎖管理器408可被配置為解鎖目錄機會鎖412。機會鎖管理器408可向第一客戶端402發(fā)送目錄機會鎖解鎖通知422。目錄機會鎖解鎖通知422可通知第一客戶端402高速緩存的目錄內(nèi)容416可能是“舊”的。如果訪問請求對應(yīng)于對目錄的操作,則機會鎖管理器408可向第二客戶端404發(fā)送通知,以在訪問目錄前等待直到由第一客戶端402確認解鎖為止。在一個例子中,機會鎖管理器408可被配置為接收包括在目錄上執(zhí)行目錄刪除的I/O請求的目錄刪除訪問請求(例如,訪問請求418)。機會鎖管理器408可通知與目錄機會鎖412相關(guān)聯(lián)的第一客戶端402退出目錄,以便發(fā)出目錄刪除訪問請求的第二客戶端404可刪除該目錄。在一個例子中,機會鎖生成器406可被配置為響應(yīng)于訪問目錄的目錄訪問請求而生成原子機會鎖。機會鎖生成器406可生成橫跨在目錄訪問請求和對目錄上的目錄機會鎖的機會鎖請求之間的時段的原子機會鎖。例如,第一客戶端402可在執(zhí)行機會鎖請求前執(zhí)行初始的目錄訪問請求。在初始的目錄訪問請求和目錄機會鎖生成之間有一時間段,其中因為目錄機會鎖尚未產(chǎn)生但目錄已被打開,所以第一客戶端是“未被保護”的。原子機會鎖可減輕此時間段內(nèi)的共享違犯。圖5說明在其上請求目錄機會鎖的目錄例子500。文件結(jié)構(gòu)502可包括目錄(例如,文件夾)和/或文件。例如,文件結(jié)構(gòu)502可由遠程文件服務(wù)器維護。在一個例子中,文件結(jié)構(gòu)502或其一部分可包括應(yīng)用(文件夾)504目錄。應(yīng)用(文件夾)504目錄可為游戲(文件夾)目錄、效能(文件夾)目錄、娛樂(文件夾)506目錄、安裝(文件)和/或應(yīng)用(文件夾)504目錄內(nèi)包括的其他對象的父目錄。娛樂(文件夾)506目錄可為音樂(文件夾)目錄、圖像(文件夾)目錄、音樂播放列表(文件)、音樂播放器(文件)、圖像瀏覽器(文件)、圖像編輯器和/或娛樂(文件夾)506目錄內(nèi)包括的其他對象的父目錄。遠程文件服務(wù)器可被配置為允許本地和/或遠程客戶端訪問文件結(jié)構(gòu)502內(nèi)的目錄和文件。存在有用于目錄和/或文件的機會鎖。在一個例子中,可從第一客戶端接收對娛樂(文件夾)506目錄上的目錄機會鎖的機會鎖請求。具體地,第一客戶端可能正在請求娛樂(文件夾)506目錄的目錄機會鎖,以便第一客戶端可本地高速緩存對應(yīng)于娛樂(文件夾)506目錄的目錄內(nèi)容。機會鎖請求可包括第一目標關(guān)鍵字和第一父關(guān)鍵字。第一目標關(guān)鍵字可指定對應(yīng)于第一客戶端和娛樂(文件)506目錄的唯一標識符。第一父關(guān)鍵字可指定對應(yīng)于第一客戶端和應(yīng)用(文件夾)504(例如,目標娛樂(文件夾)506目錄的父目錄)的唯一標識符。以此方式,可為第一客戶端生成目錄機會鎖。第一客戶端可本地高速緩存目錄內(nèi)容。例如,第一客戶端可高速緩存與娛樂(文件夾)506目錄相關(guān)聯(lián)的元數(shù)據(jù)和/或在娛樂(文件夾)506目錄內(nèi)的文件/子文件夾的列表,如音樂(文件夾)、圖像(文件夾)、音樂播放列表(文件)、音樂播放器(文件)、圖像瀏覽器(文件)、圖像編輯器(文件)和/或其他對象。圖6說明了目錄的例子600,其中不同于擁有該目錄上的目錄機會鎖的第一客戶端的第二客戶端請求訪問該目錄。文件結(jié)構(gòu)602可包括目錄(例如,文件夾)和/或文件。例如,文件結(jié)構(gòu)602或其一部分可包括娛樂(文件夾)604目錄。娛樂(文件夾)604目錄可為音樂(文件夾)目錄、圖像(文件夾)目錄、音樂播放列表(文件)606、音樂播放器(文件)、圖像瀏覽器(文件)、圖像編輯器(文件)和/或娛樂(文件夾)604目錄內(nèi)包括的其他對象的父目錄??衫斫?,第一客戶端可擁有娛樂(文件家)604目錄上的目錄機會鎖(例如,圖5)。在一個例子中,不同于擁有該目錄機會鎖的第一客戶端的第二客戶端可請求訪問音樂播放列表(文件)606。第二客戶端可發(fā)送包括第二目標關(guān)鍵字和第二父關(guān)鍵字的訪問請求。第二目標關(guān)鍵字可指定對應(yīng)于第二客戶端和音樂播放列表(文件)606的唯一標識符。第二父關(guān)鍵字可指定對應(yīng)于第二客戶端和娛樂(文件夾)604目錄(例如,目標音樂播放列表(文件)606的父目錄)的唯一標識符。因為各自的關(guān)鍵字基于不同的客戶端(例如,第一目標關(guān)鍵字基于第一客戶端,而第二父關(guān)鍵字基于不同于第一客戶端的第二客戶端),所以第二父關(guān)鍵字不匹配第一目標關(guān)鍵字,因此目錄機會鎖可被解鎖??上虻谝豢蛻舳税l(fā)送目錄機會鎖解鎖的通知,以防止第一客戶端維持娛樂(文件夾)604目錄的“舊”的高速緩存。例如,第二客戶端可修改或刪除音樂播放列表(文件)606,這不會體現(xiàn)在第一客戶端“舊”的高速緩存中。圖7說明了目錄的例子700,其中擁有該目錄上的目錄機會鎖的第一客戶端請求訪問該目錄。文件結(jié)構(gòu)702可包括目錄(例如,文件夾)和/或文件。例如,文件結(jié)構(gòu)702或其一部分可包括娛樂(文件夾)704目錄。娛樂(文件夾)704目錄可為音樂(文件夾)目錄、圖像(文件夾)目錄、音樂播放列表(文件)706、音樂播放器(文件)、圖像瀏覽器(文件)、圖像編輯器(文件)和/或娛樂(文件夾)704目錄內(nèi)包括的其他對象的父目錄。可理解,第一客戶端可擁有娛樂(文件夾)704目錄上的目錄機會鎖(例如,圖5)。在一個例子中,第二客戶端可請求訪問音樂播放列表(文件)706??衫斫?,第一客戶端和第二客戶端在例子700中是同一客戶端,且出于簡化目的被稱為客戶端。也就是說,擁有目錄機會鎖的第一客戶端和請求訪問音樂播放列表(文件)706的第二客戶端是同一客戶端。可有利的是,檢測擁有目錄機會鎖的同一客戶端是請求訪問的同一客戶端,以便目錄機會鎖不會由于這樣的訪問而被解鎖??蛻舳丝砂l(fā)送包括第二目標關(guān)鍵字和第二父關(guān)鍵字的訪問請求。第二目標關(guān)鍵字可指定對應(yīng)于客戶端和音樂播放列表(文件)706的唯一標識符。第二父關(guān)鍵字可指定對應(yīng)于客戶端和娛樂(文件夾)704目錄(例如,目標音樂播放列表(文件)706的父目錄)的唯一標識符。因為第二父關(guān)鍵字和第一目標關(guān)鍵字這兩個關(guān)鍵字都基于同一客戶端和同一娛樂(文件夾)704目錄,所以第二父關(guān)鍵字匹配第一目標關(guān)鍵字,且目錄機會鎖可不被解鎖。以此方式,因為無需向客戶端提供其自身在訪問娛樂(文件夾)704目錄的通知,所以目錄機會鎖不被解鎖。因為客戶端應(yīng)當(dāng)知道其對目錄的訪問且應(yīng)當(dāng)能夠?qū)τ谌魏螌?yīng)的高速緩存的目錄內(nèi)容采取適當(dāng)行動,所以此通知是不必要的。另一實施例涉及包括被配置為實現(xiàn)這里給出的一種或多種技術(shù)的處理器可執(zhí)行指令的計算機可讀介質(zhì)。圖8中說明了可按這些方式設(shè)計的示例計算機可讀介質(zhì),其中實現(xiàn)800包括計算機可讀介質(zhì)816(例如,CD-R、DVD-R或硬盤驅(qū)動器的盤片),其上編碼了計算機可讀數(shù)據(jù)814。計算機可讀數(shù)據(jù)814又包括被配置為根據(jù)這里闡述的一項或多項原則進行操作的計算機指令集812。例如,在一個這樣的實施例800中,處理器可執(zhí)行的計算機指令812可被配置為執(zhí)行方法810,如圖2的示例方法200或圖3的示例方法300。例如,在另一個這樣的實施例中,處理器可執(zhí)行指令812可被配置為實現(xiàn)諸如圖4的示例系統(tǒng)400之類的系統(tǒng)。本領(lǐng)域普通技術(shù)人員可設(shè)計出被配置為根據(jù)這里給出的技術(shù)進行操作的許多這樣的計算機可讀介質(zhì)。雖然利用了特定于結(jié)構(gòu)特征和/或方法動作的語言描述了主題,但應(yīng)理解,所附權(quán)利要求中限定的主題不必限于上述特定特征或動作。相反,公開了上述具體特征和動作來作為實現(xiàn)權(quán)利要求的示例形式。如本申請中所使用的,術(shù)語“部件”、“模塊”、“系統(tǒng)”、“界面”等通常意圖表示計算機相關(guān)的實體,如硬件、硬件和軟件的組合、軟件或者執(zhí)行中的軟件。例如,部件可以是但不限于處理器上運行的進程、處理器、對象、可執(zhí)行文件、執(zhí)行線程、程序和/或計算機。通過示例的方式,控制器上運行的應(yīng)用和控制器均可以是部件。一個或多個部件可駐留在執(zhí)行的進程和/或線程中,并且部件可位于一個計算機上和/或分布在兩個或更多個計算機之間。另外,可使用標準編程和/或工程技術(shù)來將所要求保護的主題實現(xiàn)為方法、裝置,或制品,來生產(chǎn)軟件、固件、硬件或它們的任何組合以控制計算機實現(xiàn)所公開的主題。這里所使用的術(shù)語“制品”意圖包括可從任何計算機可讀設(shè)備、載體或介質(zhì)存取的計算機程序。當(dāng)然,本領(lǐng)域技術(shù)人員將意識到可對該配置進行許多修改而不脫離所要求保護主題的范圍或精神。圖9和以下討論提供了實現(xiàn)這里闡述的一個或多個規(guī)定的實施例的適合計算環(huán)境的簡要概述。圖9的操作環(huán)境僅是適合的操作環(huán)境的一個例子,而不意圖暗示對于操作環(huán)境的使用或功能范圍的任何限制。示例計算設(shè)備包括但不限于個人計算機、服務(wù)器計算機、手持或膝上型設(shè)備、移動設(shè)備(諸如移動電話、個人數(shù)字助理(PDA),媒體播放器等),多處理器系統(tǒng)、消費者電子產(chǎn)品、迷你計算機、大型計算機,包括任何上述系統(tǒng)或設(shè)備的分布式計算環(huán)境等。盡管未要求,以由一個或多個計算設(shè)備執(zhí)行的“計算機可讀指令”的一般語境描述了實施例。計算機可讀指令可經(jīng)由計算機可讀介質(zhì)(以下討論)分發(fā)。計算機可讀指令可被實現(xiàn)為程序模塊,諸如函數(shù)、對象、應(yīng)用程序接口(API)、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。典型地,計算機可讀指令的功能性可根據(jù)需要在各種環(huán)境中組合或分布。圖9說明了系統(tǒng)910的例子,其包括被配置為實現(xiàn)這里提供的一個或多個實施例的計算設(shè)備912。在一個配置中,計算設(shè)備912包括至少一個處理單元916和存儲器918。根據(jù)計算設(shè)備的具體配置和類型,存儲器918可為易失性(例如,如RAM),非易失性(例如,如ROM、閃速存儲器等)或兩者的一些組合。圖9中用虛線914說明此配置。在另一個實施例中,設(shè)備912可包括附加特征和/或功能。例如,設(shè)備912也可包括附加存儲設(shè)備(例如,可移除和/或不可移除),該存儲設(shè)備包括但不限于磁存儲設(shè)備、光學(xué)存儲設(shè)備等。在圖9中由存儲設(shè)備920說明了這樣的附加存儲設(shè)備。在一個實施例中,用來實現(xiàn)這里提供的一個或多個實施例的計算機可讀指令可在存儲設(shè)備920中。存儲設(shè)備920也可存儲用來實現(xiàn)操作系統(tǒng)、應(yīng)用程序等的其他計算機可讀指令。例如,計算機可讀指令可被加載到存儲器918中以由處理單元916執(zhí)行。這里使用的術(shù)語“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令或其他數(shù)據(jù)之類的信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移除和不可移除介質(zhì)。存儲器918和存儲設(shè)備920是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括但不限于RAM、ROM、EEPROM、閃速存儲器或其他存儲技術(shù)、CD-ROM、數(shù)字多用盤(DVD)和其他光學(xué)存儲設(shè)備、磁卡帶、磁帶、磁盤存儲設(shè)備或其他磁存儲設(shè)備,或可用作存儲需要的信息并且可通過設(shè)備912訪問的任何其他介質(zhì)。任何這樣的計算機存儲介質(zhì)可以是設(shè)備912的一部分。設(shè)備912還可包括允許設(shè)備912與其他設(shè)備進行通信的通信連接(多個)926。通信連接(多個)926可包括但不限于調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機/接收機、紅外端口、USB連接或用于將計算設(shè)備912連接至其他計算設(shè)備的其他接口。通信連接(多個)926可包括有線連接或無線連接。通信連接(多個)926可發(fā)射和/或接收通信介質(zhì)。術(shù)語“計算機可讀介質(zhì)”可包括通信介質(zhì)。典型地,通信介質(zhì)包括“調(diào)制數(shù)據(jù)信號”(諸如載波或其他傳輸機制)中的計算機可讀指令或其他數(shù)據(jù),并包括任何信息遞送介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”可包括以在該信號中編碼信息這樣的方式設(shè)置或改變其一個或多個特性的信號。設(shè)備912可包括諸如鍵盤、鼠標、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、紅外相機、視頻輸入設(shè)備和/或任何其他輸入設(shè)備的輸入設(shè)備(多個)924。設(shè)備912也可包括諸如一個或多個顯示器、揚聲器、打印機和/或任何其他輸出設(shè)備的輸出設(shè)備(多個)922。輸入設(shè)備(多個)924和輸出設(shè)備(多個)922可經(jīng)由有線連接、無線連接或其任何組合與設(shè)備912連接。在一個實施例中,來自另一計算設(shè)備的輸入設(shè)備或輸出設(shè)備可被用作計算設(shè)備912的輸入設(shè)備(多個)924或輸出設(shè)備(多個)922。計算設(shè)備912中的部件可通過諸如總線之類的各種互連進行連接。這些互連可包括外設(shè)部件互連(PCI),如PCI高速、通用串行總線(USB)、火線(IEEE1394)、光學(xué)總線結(jié)構(gòu)等。在另一個實施例中,計算設(shè)備912的部件可通過網(wǎng)絡(luò)互連。例如,存儲器918可包括位于通過網(wǎng)絡(luò)互連的不同物理位置上的多個物理存儲器單元。本領(lǐng)域技術(shù)人員將意識到,用來存儲計算機可讀指令的存儲設(shè)備可在網(wǎng)絡(luò)上分發(fā)。例如,可經(jīng)由網(wǎng)絡(luò)928訪問的計算設(shè)備930可存儲計算機可讀指令以實現(xiàn)這里提供的一個或多個實施例。計算設(shè)備912可訪問計算設(shè)備930,并下載計算機可讀指令的一部分或全部用以執(zhí)行??商鎿Q地,計算設(shè)備912可根據(jù)需要下載計算機可讀指令的片段,或者一些指令可在計算設(shè)備912處執(zhí)行且一些在計算設(shè)備930處執(zhí)行。這里提供了實施例的各種操作。在一個實施例中,所述操作中的一個或多個可構(gòu)成在一個或多個計算機可讀介質(zhì)上存儲的計算機可讀指令,如果該計算機可讀指令由計算設(shè)備執(zhí)行,則將使得計算設(shè)備執(zhí)行所述操作。操作中的一些或全部被描述的次序不應(yīng)被理解為暗示這些操作必須依賴于該順序。本領(lǐng)域技術(shù)人員在獲取了本說明的益處后將意識到其他次序。另外,將理解,并不是所有的操作都必須在這里提供的每個實施例中存在。此外,詞語“示例”在這里用來表示充當(dāng)例子、實例或說明。這里描述為“示例”的任何方面或設(shè)計不必被理解為優(yōu)于其他方面或設(shè)計。相反,詞語示例的使用意圖給出抽象形式的概念。如在本申請中所使用的,術(shù)語“或”意圖表示包括性的“或”而非排他性的“或”。也就是說,除非特別指出或從上下文清楚理解,“X采用A或B”意圖表示任何自然的包括性枚舉。即,如果X采用A;X采用B;或X采用A和B兩者,則在任何前述實例下均滿足“X采用A或B”。此外,本申請和所附權(quán)利要求中所使用的不定冠詞“一”或“一個”可通常被理解為“一個或多個”,除非特別指出或從上下文清楚理解為針對單數(shù)形式。而且,盡管已經(jīng)參照一個或多個實現(xiàn)方式示出和描述了本公開,但是基于對本說明書和附圖的閱讀和理解,本領(lǐng)域技術(shù)人員將得到等同的替代或修改。本公開包括所有這樣的修改和替代,且僅僅受限于以下權(quán)利要求的范圍。尤其對于由上述部件(例如,單元、資源等)執(zhí)行的各種功能,用來表述這樣的部件的術(shù)語意圖對應(yīng)于(除非另外指出)執(zhí)行所述部件的特定功能的任何部件(例如,是功能等同的),即使在結(jié)構(gòu)上不等同于執(zhí)行這里說明的本公開示例實現(xiàn)方式的功能的所公開的結(jié)構(gòu)。此外,盡管可參考幾個實現(xiàn)方式中的僅僅一個公開了本公開的具體特征,但是這樣的特征可與其他實現(xiàn)方式的一個或多個其他特征進行組合,這可能是期望的并且對于任何給定的或具體的應(yīng)用而言是有利的。另外,在具體實施方式或權(quán)利要求中使用術(shù)語“包括”、“具有”、“有”、“帶有”或其變形的情況下,這樣的術(shù)語意圖為類似于術(shù)語“包含”的方式的包括性。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
巴东县| 乌拉特后旗| 辽阳县| 津南区| 湖口县| 永济市| 峨山| 武冈市| 云安县| 铜梁县| 临桂县| 上虞市| 交口县| 中江县| 曲沃县| 卢氏县| 博乐市| 肇庆市| 板桥市| 江城| 密云县| 泰来县| 巨野县| 灵寿县| 绵阳市| 清河县| 巴中市| 永康市| 凤山县| 西平县| 靖远县| 保山市| 措勤县| 易门县| 奇台县| 大姚县| 陆良县| 扬中市| 手机| 鄂温| 麻阳|