国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法

      文檔序號:7806858閱讀:320來源:國知局
      一種分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法
      【專利摘要】本發(fā)明公開了一種分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法,屬于計算機存儲系統(tǒng)【技術(shù)領(lǐng)域】。當客戶端在訪問文件時,直接向鎖服務(wù)器申請及建立文件父目錄的目錄范圍鎖,獲得該目錄下所有子文件的元數(shù)據(jù)緩存權(quán)限;當其它客戶端訪問同一個子文件時,撤回沖突子文件的元數(shù)據(jù)到元數(shù)據(jù)服務(wù)器,后繼客戶端再申請此子文件的元數(shù)據(jù)緩存權(quán)限。本發(fā)明減少了維護緩存一致性的開銷,并且目錄范圍鎖對應(yīng)緩存中的元數(shù)據(jù)可以批量刷回,減少與元數(shù)據(jù)服務(wù)器的交互次數(shù),同時客戶端具有更好的并發(fā)度,提高客戶端訪問元數(shù)據(jù)的性能。本發(fā)明適合于各種應(yīng)用場景,特別適用于扁平的目錄層次結(jié)構(gòu),即目錄下有大量文件而目錄層次不深的場景。
      【專利說明】一種分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法

      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明屬于計算機存儲系統(tǒng)【技術(shù)領(lǐng)域】,更具體地,涉及一種分布式文件系統(tǒng)客戶 端元數(shù)據(jù)緩存優(yōu)化方法,用于減少客戶端與元數(shù)據(jù)服務(wù)器及鎖服務(wù)器間的通信,降低維護 客戶端元數(shù)據(jù)緩存一致性的開銷,提高客戶端元數(shù)據(jù)訪問的性能。

      【背景技術(shù)】
      [0002] 近年來,隨著各個行業(yè)數(shù)據(jù)規(guī)模的飛速增長,有越來越多的文件和數(shù)據(jù)需要保存, 也給分布式文件系統(tǒng)帶來巨大挑戰(zhàn)。根據(jù)國際數(shù)據(jù)公司統(tǒng)計,2011年的全球數(shù)據(jù)總量達到 1. 8ZB,即1. 8萬億GB,而且該數(shù)據(jù)還在以每兩年翻一番的速度增長,預(yù)計到2020年全球的 數(shù)據(jù)總量將達到35ZB,增長近20倍。膨脹的數(shù)據(jù)規(guī)模給文件系統(tǒng)帶來了巨大壓力,因此需 要提高分布式文件系統(tǒng)的訪問性能。在基于三方架構(gòu)的分布式文件系統(tǒng)中,元數(shù)據(jù)和數(shù)據(jù) 分開存儲,元數(shù)據(jù)訪問是數(shù)據(jù)訪問的必經(jīng)之路,而在文件系統(tǒng)的所有訪問中,元數(shù)據(jù)的訪問 占了 50%以上,提高元數(shù)據(jù)的訪問性能是提升文件系統(tǒng)性能的重要途徑。
      [0003] 若客戶端每次訪問元數(shù)據(jù)都向元數(shù)據(jù)服務(wù)器申請獲得,會帶來大量通信開銷,因 此可以將一部分元數(shù)據(jù)緩存在客戶端,客戶端下次讀取或修改的時候可直接在本地完成, 避免網(wǎng)絡(luò)通信開銷,從而提高元數(shù)據(jù)訪問的性能,加快數(shù)據(jù)獲取的速度,提高系統(tǒng)整體性 能。
      [0004] 目前很多主流文件系統(tǒng)都研究和實現(xiàn)了客戶端的元數(shù)據(jù)緩存,比如NFS Version4、Lustre、BWFS、AFS及Google等文件系統(tǒng)的客戶端都實現(xiàn)了元數(shù)據(jù)緩存機制。NFS Ver Si〇n4使用租約機制來實現(xiàn)元數(shù)據(jù)緩存;Lustre使用分布式鎖回調(diào)機制保證元數(shù)據(jù)緩 存一致性;AFS使用與Lustre類似的鎖回調(diào)機制實現(xiàn)元數(shù)據(jù)緩存;BWFS的方法是客戶端每 隔一段時間就從元數(shù)據(jù)服務(wù)器獲取最新元數(shù)據(jù)信息,或者刷回已經(jīng)修改的元數(shù)據(jù)信息,以 保證元數(shù)據(jù)的一致性;Google文件系統(tǒng)使用Chubby提供的緩存一致性管理功能。
      [0005] 由于元數(shù)據(jù)緩存一致性的維護會給系統(tǒng)性能的提升帶來一定的損失,若需要進一 步地提高客戶端元數(shù)據(jù)緩存的性能,可以通過減少緩存一致性維護的開銷來提高文件系統(tǒng) 整體性能。目前公開了一種類似的元數(shù)據(jù)緩存優(yōu)化方法,即Lustre中的子樹鎖機制,見: 錢迎進,金士堯,肖儂,《Lustre文件系統(tǒng)I/O鎖的應(yīng)用與優(yōu)化》,計算機工程與應(yīng)用,2011, 47 (3) : 1?5。該方法中子樹鎖是一個目錄上的鎖,保護以該目錄為根節(jié)點的整個子樹命名 空間,其具有以下缺點:第一,當有訪問文件沖突時,會撤銷其父目錄為根的整個子樹鎖權(quán) 限,造成不必要的其他文件的撤回開銷,特別是當文件數(shù)量很大時造成的開銷更大,性能會 受影響;第二,每次文件申請元數(shù)據(jù)緩存時,需要向上級目錄依次查詢是否擁有子樹鎖,一 直到查到子樹鎖或者不存在子樹鎖為止,查詢開銷大。


      【發(fā)明內(nèi)容】

      [0006] 針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供一種分布式文件系統(tǒng)客戶端元 數(shù)據(jù)緩存優(yōu)化方法,通過減少緩存一致性維護中的網(wǎng)絡(luò)通信開銷,提高系統(tǒng)元數(shù)據(jù)訪問性 能。
      [0007] 本發(fā)明提供一種分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法,包括下述步驟:
      [0008] 步驟1客戶端申請文件的元數(shù)據(jù)緩存權(quán)限,首先查看本地是否擁有所述文件的父 目錄的目錄范圍鎖,有則執(zhí)行步驟3,否則執(zhí)行步驟2 ;
      [0009] 步驟2查詢鎖服務(wù)器上是否存在所述目錄范圍鎖,如果沒有則向所述鎖服務(wù)器申 請所述目錄范圍鎖,并獲得所述父目錄下所有子文件的元數(shù)據(jù)緩存權(quán)限,流程結(jié)束,否則執(zhí) 行步驟4 ;
      [0010] 步驟3查詢申請的所述文件是否在所述目錄范圍鎖的撤銷列表中,如果不在則獲 得所述文件的所述元數(shù)據(jù)緩存權(quán)限,流程結(jié)束,否則執(zhí)行步驟5 ;
      [0011] 步驟4查詢申請的所述文件是否在所述撤銷列表中,如果在則執(zhí)行步驟5 ;否則所 述客戶端請求所述鎖服務(wù)器撤回所述文件的元數(shù)據(jù),然后執(zhí)行步驟5 ;
      [0012] 步驟5所述客戶端向所述鎖服務(wù)器申請所述文件的所述元數(shù)據(jù)緩存權(quán)限。
      [0013] 進一步地,所述步驟5具體包括以下子步驟:
      [0014] (5. 1)在所述鎖服務(wù)器上建立對應(yīng)所述文件的屬于所述客戶端的帶順序號的鎖節(jié) 點,并且設(shè)置對所述鎖節(jié)點數(shù)據(jù)改變的監(jiān)聽;
      [0015] (5. 2)查看所述鎖節(jié)點之前是否已經(jīng)建立了順序號更小的鎖節(jié)點,若有則表示已 經(jīng)有其他客戶端申請了所述文件的所述元數(shù)據(jù)緩存權(quán)限,執(zhí)行步驟(5. 3),否則獲得所述文 件的所述元數(shù)據(jù)緩存權(quán)限,流程結(jié)束;
      [0016] (5. 3)觸發(fā)所述鎖節(jié)點數(shù)據(jù)改變的監(jiān)聽,所述鎖服務(wù)器回調(diào)通知所述順序號更小 的鎖節(jié)點所屬客戶端刷回所述文件的元數(shù)據(jù),當所述元數(shù)據(jù)刷回完成,則獲得所述文件的 所述元數(shù)據(jù)緩存權(quán)限,流程結(jié)束。
      [0017] 總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效 果:
      [0018] 1、本發(fā)明通過建立目錄范圍鎖,使得客戶端可以擁有該目錄下所有子文件的元數(shù) 據(jù)緩存權(quán)限,當有少數(shù)文件訪問發(fā)生沖突時,只用撤回該目錄下沖突的文件的元數(shù)據(jù)緩存, 而不用將整個目錄下所有文件的元數(shù)據(jù)都撤回,開銷較小。此外查詢目錄范圍鎖的開銷也 較小,只需向上查詢父目錄是否擁有目錄范圍鎖。本發(fā)明適用于多種場景,特別適合扁平的 目錄層次結(jié)構(gòu),即目錄下有大量文件,而目錄層次不深的場景。
      [0019] 2、本發(fā)明基于目錄范圍鎖的技術(shù)方案可以使得客戶端在本地創(chuàng)建、訪問一個目錄 下的大量文件,可以減少通信開銷,提高系統(tǒng)性能。客戶端擁有的目錄范圍鎖的緩存也可以 批量刷回,減少與元數(shù)據(jù)服務(wù)器的交互次數(shù),從而減少通信開銷,同時客戶端也具有更好的 并發(fā)度,可以提高客戶端訪問元數(shù)據(jù)的性能,進而提高客戶端訪問數(shù)據(jù)的性能。

      【專利附圖】

      【附圖說明】
      [0020] 圖1為本發(fā)明分布式文件系統(tǒng)的架構(gòu)圖;
      [0021] 圖2為本發(fā)明元數(shù)據(jù)緩存優(yōu)化方法的流程圖;
      [0022] 圖3為本發(fā)明元數(shù)據(jù)緩存優(yōu)化方法的詳細流程圖;
      [0023] 圖4為本發(fā)明申請單個文件元數(shù)據(jù)緩存的流程圖;
      [0024] 圖5為本發(fā)明目錄范圍鎖及鎖服務(wù)器上節(jié)點的示意圖。

      【具體實施方式】
      [0025] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要 彼此之間未構(gòu)成沖突就可以相互組合。
      [0026] 圖1所示為本發(fā)明分布式文件系統(tǒng)的架構(gòu)圖,包括客戶端、鎖服務(wù)器、元數(shù)據(jù)服務(wù) 器和對象存儲服務(wù)器,相互之間通過高速互聯(lián)網(wǎng)絡(luò)進行通信??蛻舳讼蜴i服務(wù)器申請獲得 元數(shù)據(jù)緩存權(quán)限,然后向元數(shù)據(jù)服務(wù)器申請獲得元數(shù)據(jù)并緩存在本地,最后根據(jù)元數(shù)據(jù)向 對象服務(wù)器申請獲得數(shù)據(jù)。其中鎖服務(wù)器和元數(shù)據(jù)服務(wù)器可以部署在不同的機器上或者同 一臺機器,本發(fā)明實施例中為鎖服務(wù)器和元數(shù)據(jù)服務(wù)器分別部署在獨立機器上的情況。在 本發(fā)明實施例中,鎖服務(wù)器采用zooke印er服務(wù)器來提供一致性保證。zookeeper服務(wù)器是 一個當前比較主流的保證一致性、高效、可靠的協(xié)同系統(tǒng)。
      [0027] 圖2所示為本發(fā)明元數(shù)據(jù)緩存優(yōu)化方法的流程圖??蛻舳讼炔樵儽镜厥欠裼兴?請子文件的父目錄的目錄范圍鎖,如果存在,則再查詢該子文件是否在目錄范圍鎖的撤銷 列表中,是則申請該子文件的元數(shù)據(jù)緩存權(quán)限,即在鎖服務(wù)器上建立表示該子文件元數(shù)據(jù) 緩存權(quán)限的帶有順序號的節(jié)點,創(chuàng)建成功后該客戶端獲得該子文件的元數(shù)據(jù)緩存權(quán)限;否 則獲得該子文件的元數(shù)據(jù)緩存權(quán)限。當本地不存在父目錄的目錄范圍鎖時,則查詢鎖服務(wù) 器上是否已有該父目錄的目錄范圍鎖,如果沒有則申請目錄范圍鎖并獲得該父目錄下所有 子文件的元數(shù)據(jù)緩存權(quán)限,否則先查看申請的子文件是否在目錄范圍鎖的撤銷列表中,是 則直接申請該子文件的元數(shù)據(jù)緩存權(quán)限,否則請求撤回該子文件的元數(shù)據(jù)緩存,然后申請 該子文件的元數(shù)據(jù)緩存權(quán)限。
      [0028] 圖3所示為本發(fā)明元數(shù)據(jù)緩存優(yōu)化方法的詳細流程圖。
      [0029] 在本發(fā)明實施例中,假設(shè)客戶端1首先在目錄/dir下創(chuàng)建大量子文件/dir/a、/ dir/b···,然后客戶端2訪問子文件/dir/a,最后客戶端3也訪問子文件/dir/a。
      [0030] 客戶端1首先在父目錄/dir下進行操作,系統(tǒng)執(zhí)行下述步驟:
      [0031] 步驟1當客戶端1在申請子文件/dir/a的元數(shù)據(jù)緩存權(quán)限時,首先查看本地是否 擁有其父目錄/dir的目錄范圍鎖,有則執(zhí)行步驟3,否則執(zhí)行步驟2。在本發(fā)明實施例中, 當客戶端擁有目錄范圍鎖表示該客戶端擁有此目錄下所有子文件的元數(shù)據(jù)緩存權(quán)限,不包 括子目錄的元數(shù)據(jù)緩存權(quán)限。
      [0032] 步驟2查詢鎖服務(wù)器上是否已有該父目錄/dir的目錄范圍鎖,有則執(zhí)行步驟4, 否則申請父目錄/dir的目錄范圍鎖,此時客戶端1在鎖服務(wù)器上創(chuàng)建鎖節(jié)點/subtree/ dir/ex_sessionID_l,其中,subtree表示目錄范圍鎖,dir表示父目錄,ex表示互斥訪問, sessionID表示客戶端與鎖服務(wù)器的對話ID,用以區(qū)分不同的客戶端,最后一個數(shù)字是遞 增的,表示申請目錄范圍鎖的順序,同時在鎖節(jié)點/subtree/dir/ex_sessionID_l上設(shè)置 監(jiān)聽,監(jiān)聽其他客戶端的請求。由于此時鎖服務(wù)器上沒有此目錄范圍鎖節(jié)點,則可以創(chuàng)建目 錄范圍鎖成功,獲得父目錄/dir下所有子文件的元數(shù)據(jù)緩存的互斥訪問權(quán)限。
      [0033] 步驟3查詢子文件/dir/a是否在父目錄/dir的目錄范圍鎖的撤銷列表中,是則 執(zhí)行步驟5,否則獲得該子文件/dir/a的元數(shù)據(jù)緩存權(quán)限,流程結(jié)束。
      [0034] 在本發(fā)明實施例中,當客戶端1申請子文件/dir/b和其父目錄/dir下其他子文 件的元數(shù)據(jù)緩存權(quán)限時,查到客戶端1本地已經(jīng)擁有父目錄/dir的目錄范圍鎖,而且查詢 申請的文件/dir/b等不在撤銷列表中,則可以在父目錄/dir下直接創(chuàng)建、訪問/dir/b等 子文件,按已獲得元數(shù)據(jù)緩存權(quán)限進行后續(xù)操作,此時無需與鎖服務(wù)器及元數(shù)據(jù)服務(wù)器進 行通信。
      [0035] 此時客戶端2訪問/dir/a,客戶端2查詢本地沒有/dir的目錄范圍鎖,因此同樣 也要向鎖服務(wù)器申請/dir的目錄范圍鎖。通過查詢鎖服務(wù)器得知此時客戶端2需要申請 的目錄范圍鎖/dir已經(jīng)被客戶端1申請,表明兩個客戶端申請同一個目錄下的文件元數(shù)據(jù) 緩存。
      [0036] 步驟4查詢申請的文件/dir/a是否在目錄范圍鎖的撤銷列表中,是則執(zhí)行步驟5, 否則由客戶端2向鎖服務(wù)器發(fā)出請求撤回子文件/dir/a的元數(shù)據(jù),鎖服務(wù)器觸發(fā)之前客戶 端1建立的監(jiān)聽,回調(diào)通知擁有/dir/a文件元數(shù)據(jù)緩存的客戶端1撤回子文件/dir/a的 元數(shù)據(jù),而且客戶端1將/dir/a放入目錄范圍鎖的撤銷列表中,并且同時由客戶端2在節(jié) 點 eX_SeSSionID_l上設(shè)置一個監(jiān)聽,監(jiān)聽客戶端1上/dir/a元數(shù)據(jù)的刷回是否完成,然后 進入等待進程。當客戶端1的元數(shù)據(jù)刷回完成則通知鎖服務(wù)器,此時會觸發(fā)之前客戶端2 設(shè)置的監(jiān)聽,喚醒客戶端2的等待進程,表示客戶端2知道元數(shù)據(jù)的刷回完成,然后執(zhí)行步 驟5。
      [0037] 步驟5運行如圖4所示的申請單個文件元數(shù)據(jù)緩存的流程圖,具體包括以下子步 驟:
      [0038] (5. 1)申請單個文件/dir/a的元數(shù)據(jù)緩存權(quán)限時,首先在鎖服務(wù)器上建立對應(yīng)此 文件/dir/a的屬于客戶端的帶順序號的鎖節(jié)點,并且設(shè)置對該鎖節(jié)點數(shù)據(jù)改變的監(jiān)聽。
      [0039] (5. 2)查看該鎖節(jié)點之前是否已經(jīng)建立了順序號更小的鎖節(jié)點,即沖突節(jié)點,有則 表示已經(jīng)有客戶端申請了文件/dir/a的元數(shù)據(jù)緩存權(quán)限,執(zhí)行步驟(5.3);否則成功獲得 文件/dir/a的元數(shù)據(jù)緩存權(quán)限,流程結(jié)束。
      [0040] (5. 3)找到?jīng)_突節(jié)點,觸發(fā)上述步驟(5. 1)設(shè)置的鎖節(jié)點數(shù)據(jù)改變的監(jiān)聽,并設(shè)置 前一個沖突節(jié)點的刪除事件監(jiān)聽,客戶端進入等待狀態(tài)等待喚醒,當請求觸發(fā)原擁有文件/ dir/a的元數(shù)據(jù)緩存權(quán)限的客戶端的監(jiān)聽時,查詢本地元數(shù)據(jù)緩存是否獲得的標志,當元數(shù) 據(jù)緩存沒有獲得則等待下次重新觸發(fā),當元數(shù)據(jù)緩存已經(jīng)獲得,則鎖服務(wù)器回調(diào)通知該沖 突節(jié)點所屬客戶端刷回元數(shù)據(jù),并且客戶端在該沖突節(jié)點上設(shè)置一個監(jiān)聽,監(jiān)聽該沖突節(jié) 點所屬客戶端的刷回元數(shù)據(jù)操作是否完成。當元數(shù)據(jù)刷回完成,將本地的元數(shù)據(jù)緩存置無 效,刪除自身創(chuàng)建的鎖節(jié)點并喚醒等待的客戶端,通知其可以獲得文件/dir/a的元數(shù)據(jù)緩 存權(quán)限,流程結(jié)束。
      [0041] 在本發(fā)明實施例中,客戶端2向鎖服務(wù)器申請單個文件/dir/a的元數(shù)據(jù)緩存權(quán) 限,即在鎖服務(wù)器上建立表示文件/dir/a元數(shù)據(jù)緩存權(quán)限的鎖節(jié)點,例如/flock/dira/ ex_sessionID_l,其中/flock表示是單個文件的元數(shù)據(jù)緩存權(quán)限,dira表示文件/dir/a, 其他說明同步驟2,并且設(shè)置監(jiān)聽,監(jiān)聽其他客戶端的請求。然后查看在該鎖節(jié)點之前是否 已經(jīng)建立了順序號更小的節(jié)點,此時沒有,則表示獲得/dir/a元數(shù)據(jù)緩存權(quán)限成功。
      [0042] 此時客戶端1在鎖服務(wù)器上建立了如圖5所示的表示/dir的節(jié)點但是exc印t:a, 對應(yīng)擁有文件系統(tǒng)中/dir目錄范圍鎖(除/dir/a以外的所有子文件的元數(shù)據(jù)緩存權(quán)限), 即除去子文件/dir/a以外的目錄范圍鎖??蛻舳?在鎖服務(wù)器上建立了如圖5所示的表 示/dir/a的鎖節(jié)點,對應(yīng)擁有文件系統(tǒng)中/dir/a的單個文件元數(shù)據(jù)緩存權(quán)限。
      [0043] 當客戶端3也申請/dir/a的元數(shù)據(jù)緩存權(quán)限的時候,則首先查看得知本地沒有父 目錄/dir的目錄范圍鎖,因此同樣也要向鎖服務(wù)器申請/dir的目錄范圍鎖。通過查詢鎖 服務(wù)器得知,此時客戶端3需要申請的父目錄/dir的目錄范圍鎖已經(jīng)被客戶端1申請,表 明兩個客戶端申請同一個文件的元數(shù)據(jù)緩存權(quán)限。則首先查詢鎖服務(wù)器得知/dir/a在撤 銷列表中,客戶端3向鎖服務(wù)器申請單個文件/dir/a的元數(shù)據(jù)緩存權(quán)限,即在鎖服務(wù)器上 建立表示文件/dir/a元數(shù)據(jù)緩存權(quán)限的鎖節(jié)點,例如/flock/dira/ex_sessionID_2,并且 設(shè)置監(jiān)聽,以監(jiān)聽其他客戶端的請求。由于此節(jié)點之前已經(jīng)建立了順序號更小的節(jié)點,客戶 端3進入等待狀態(tài),并觸發(fā)鎖節(jié)點/flock/dira/ex_sessionID_l的監(jiān)聽,鎖服務(wù)器回調(diào)通 知客戶端2刷回/dir/a的元數(shù)據(jù),并且客戶端3在鎖節(jié)點/flock/dira/ex_sessionID_l 上設(shè)置一個監(jiān)聽,監(jiān)聽客戶端2的元數(shù)據(jù)刷回操作完成。當/dir/a的元數(shù)據(jù)刷回完成,客 戶端2會觸發(fā)客戶端3的監(jiān)聽,喚醒等待的客戶端3,通知客戶端3可以獲得元數(shù)據(jù)緩存權(quán) 限。
      [0044] 本發(fā)明提供的分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法,當有訪問文件沖突 時,只需要撤回沖突的文件元數(shù)據(jù),不需要撤回不必要的其他文件元數(shù)據(jù),撤銷開銷小;而 且由于本發(fā)明中目錄范圍鎖只包含子文件的元數(shù)據(jù)緩存權(quán)限,因此文件申請元數(shù)據(jù)緩存權(quán) 限時,只需向上查詢父目錄是否擁有目錄范圍鎖即可,查詢開銷小??蛻舳藫碛械哪夸浄秶?鎖的緩存也可以批量刷回,減少與元數(shù)據(jù)服務(wù)器的交互次數(shù),從而減少通信開銷。本發(fā)明適 合于各種應(yīng)用場景,特別適合于扁平的目錄層次結(jié)構(gòu)場景,即目錄下有大量文件,但是目錄 層次不深的情況。
      [0045] 本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以 限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含 在本發(fā)明的保護范圍之內(nèi)。
      【權(quán)利要求】
      1. 一種分布式文件系統(tǒng)客戶端元數(shù)據(jù)緩存優(yōu)化方法,其特征在于,包括: 步驟1客戶端申請文件的元數(shù)據(jù)緩存權(quán)限,首先查看本地是否擁有所述文件的父目錄 的目錄范圍鎖,有則執(zhí)行步驟3,否則執(zhí)行步驟2 ; 步驟2查詢鎖服務(wù)器上是否存在所述目錄范圍鎖,如果沒有則向所述鎖服務(wù)器申請所 述目錄范圍鎖,并獲得所述父目錄下所有子文件的元數(shù)據(jù)緩存權(quán)限,流程結(jié)束,否則執(zhí)行步 驟4; 步驟3查詢申請的所述文件是否在所述目錄范圍鎖的撤銷列表中,如果不在則獲得所 述文件的所述元數(shù)據(jù)緩存權(quán)限,流程結(jié)束,否則執(zhí)行步驟5 ; 步驟4查詢申請的所述文件是否在所述撤銷列表中,如果在則執(zhí)行步驟5 ;否則所述客 戶端請求所述鎖服務(wù)器撤回所述文件的元數(shù)據(jù),然后執(zhí)行步驟5 ; 步驟5所述客戶端向所述鎖服務(wù)器申請所述文件的所述元數(shù)據(jù)緩存權(quán)限。
      2. 如權(quán)利要求1所述的方法,其特征在于,所述步驟2具體包括以下子步驟: (2. 1)查詢所述鎖服務(wù)器上是否存在所述目錄范圍鎖,如果沒有則執(zhí)行步驟(2. 2),否 則執(zhí)行步驟4 ; (2. 2)向所述鎖服務(wù)器申請所述目錄范圍鎖,并在所述鎖服務(wù)器上創(chuàng)建代表所述父目 錄的節(jié)點; (2. 3)在所述節(jié)點上設(shè)置監(jiān)聽,監(jiān)聽其他客戶端的請求; (2. 4)創(chuàng)建所述目錄范圍鎖成功,獲得所述父目錄下所有子文件的元數(shù)據(jù)緩存權(quán)限,流 程結(jié)束。
      3. 如權(quán)利要求1或2所述的方法,其特征在于,所述步驟4具體包括以下子步驟: (4. 1)查詢申請的所述文件是否在所述撤銷列表中,如果在則執(zhí)行步驟5 ;否則執(zhí)行步 驟(4. 2); (4. 2)所述客戶端請求所述鎖服務(wù)器撤回所述文件的所述元數(shù)據(jù); (4. 3)所述鎖服務(wù)器回調(diào)通知擁有所述目錄范圍鎖的所述客戶端刷回所述文件的所述 元數(shù)據(jù),并將所述文件放在所述撤銷列表中; (4. 4)當所述元數(shù)據(jù)刷回完成則通知所述鎖服務(wù)器,所述鎖服務(wù)器通知所述客戶端,然 后執(zhí)行步驟5。
      4. 如權(quán)利要求1或2所述的方法,其特征在于,所述步驟5具體包括以下子步驟: (5. 1)在所述鎖服務(wù)器上建立對應(yīng)所述文件的屬于所述客戶端的帶順序號的鎖節(jié)點, 并且設(shè)置對所述鎖節(jié)點數(shù)據(jù)改變的監(jiān)聽; (5. 2)查看所述鎖節(jié)點之前是否已經(jīng)建立了順序號更小的鎖節(jié)點,若有則表示已經(jīng)有 其他客戶端申請了所述文件的所述元數(shù)據(jù)緩存權(quán)限,執(zhí)行步驟(5. 3),否則獲得所述文件的 所述元數(shù)據(jù)緩存權(quán)限,流程結(jié)束; (5. 3)觸發(fā)所述鎖節(jié)點數(shù)據(jù)改變的監(jiān)聽,所述鎖服務(wù)器回調(diào)通知所述順序號更小的鎖 節(jié)點所屬客戶端刷回所述文件的元數(shù)據(jù),當所述元數(shù)據(jù)刷回完成,則獲得所述文件的所述 元數(shù)據(jù)緩存權(quán)限,流程結(jié)束。
      【文檔編號】H04L29/08GK104113587SQ201410284455
      【公開日】2014年10月22日 申請日期:2014年6月23日 優(yōu)先權(quán)日:2014年6月23日
      【發(fā)明者】王芳, 馮丹, 劉芬, 田昊, 朱挺煒, 祖文強 申請人:華中科技大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1