專利名稱:一種基于文件和數據塊兩級粒度的副本替換方法及系統的制作方法
技術領域:
本發明屬于廣域分布式系統技術領域,具體地說,本發明涉及一種基于文件和數據塊兩級粒度的副本替換方法及系統。
背景技術:
在主存儲讀取速度低的條件下,緩存的使用對于提供數據訪問速度起到了極其重要的作用。由于應用對數據的訪問存在不同的規律,數據進入緩存和退出緩存就需要采取某種機制,最常用的方法是LRU(最近最少使用)替換機制。但LRU存在如下問題:不能處理弱訪問局部性,比如:(1)文件掃描:一次訪問的數據塊不能被及時地替換;(2)類循環訪問:最早被訪問的數據塊不幸地被替換;(3)以不同頻率進行的訪問:頻繁被訪問的數據塊可被不幸地替換出。針對上述問題,美國俄亥俄大學的李曉東團隊提出LIRS(LowInter-reference Recency Set algorithm、低互引用最近性集合算法)機制。該機制首先定義IRR(Inter-reference Recency,互引用最近性)為在對該數據塊的兩次連續引用之間,所訪問其他不同數據塊數,即重用距離;其觀察依據是一個高IRR數據塊將不會被頻繁使用,從而選擇高IRR數據塊加以替換;以最近性用作第二引用。LIRS的操作有四種情況:(I)初始化:直到LIR數據塊集合滿之前,所有被引用的數據塊都被賦予一個LIR狀態,同時將駐留HIR數據塊放置于一個小型的LRU棧中;(2)在訪問一個LIR數據塊(一次命中)時的處理;(3)在訪問一個駐留HIR數據塊(一次命中)時的處理;(4)在訪問一個非駐留HIR數據塊(一次非命中)時的情況。其具體操作這里不再詳述,可參見相關文獻。LIRS適用于數據粒度較小的情況。對于較大粒度的數據管理,比如數十兆、數百兆,甚至更大的數據文件,由于訪問分布于文件的不同位置,造成與小粒度數據的規律不同,同時替換代價也不同。基于此,在廣域分布式系統的數據管理中,就需要考慮不同的數據替換方法,本發明正是針對這一問題而提出的方法。
發明內容
本發明的目的是考慮大型文件尺寸條件下,在廣域分布式系統中,針對訪問分布于文件的不同位置、替換代價不同等特征,從而提供一種基于文件和數據塊兩級粒度的副本替換方法及系統。為實現上述發明目的,本發明提供一種基于文件和數據塊兩級粒度的副本替換系統,該系統用于為廣域的基于內容分布式的系統提供一種數據副本替換策略,所述系統包含:文件管理子系統和數據塊管理子系統。所述文件管理子系統,用于處理替換系統內部的文件請求并生成與其相連接的文件緩存單元的文件副本替換策略。所述數據塊管理子系統,用于處理數據塊請求、進行訪問統計并生成與其相連的數據塊緩存單元的數據塊副本替換策略。其中,所述數據塊管理子系統向所述文件管理子系統報告數據塊的使用狀態信息;所述文件管理子系統和數據塊管理子系統之間是一對多的關系。上述技術方案中,所述文件管理子系統進一步包含:文件進入緩存單元:該單元在有對文件的讀寫請求時,從外部文件源處得到該文件。文件副本替換退出策略生成單元,該單元首先將文件進入緩存單元得到的最新文件替換位于文件緩存單元上的被引用為否的文件;其次在LIRS機制的基礎上,將引用距離和最近性之外的文件熱度指標作為文件是否退出文件緩存單元的依據,即當有若干個文件滿足引用距離和最近性指標退出文件緩存單元的條件時,要進一步選擇文件熱度低的文件作為最終退出文件緩存單元的文件。和基于數據塊信息更新文件狀態信息的單元,該單元從數據塊管理子系統接收數據塊統計信息,將數據塊的使用次數累加到對應數據塊的訪問次數,并當數據塊退出一數據塊管理子系統時,對該數據塊的被引用計數減1,當被引用計數為值O時,表示沒有數據塊管理子系統緩存或訪問該數據塊;依據各數據塊的訪問次數,更新文件熱度;依據各數據塊的被引用計數,更新文件被引用狀態。其中,所述數據塊統計信息包括數據塊的使用次數、數據塊退出所述數據塊管理子系統所連接的緩存單元的時間。上述技術方案中,所述數據塊管理子系統進一步包含:基于LIRS機制生成數據塊替換策略的單元,該單元采取LIRS機制處理所有數據塊進入數據塊緩存單元、數據塊被訪問和退出數據塊緩存單元的操作。數據塊統計單元,該單元在數據塊進入數據塊緩存單元時和被訪問時,對數據塊引用進行累加計數。和數據塊統計信息上報單元,該單元在某數據塊退出數據塊緩存單元時,將該數據塊的退出信息及數據塊統計單元進行的累加計數信息同時上報所述基于數據塊信息更新文件狀態信息的單元。基于上述技術方案公開的系統本發明還提供一種基于文件和數據塊兩級粒度的副本替換方法,該方法用于為廣域的基于內容分布式的系統提供一種數據副本替換策略,所述方法包含:用于數據塊級的副本替換步驟。用于文件級的副本替換步驟。其中,所述數據塊級的副本替換步驟為文件級的副本替換步驟提供低層信息來源,即所述數據塊級的副本替換步驟向所述文件級的副本替換步驟報告數據塊的使用狀態信息供其生成文件副本的替換策略。上述技術方案中,所述用于數據塊級的副本替換步驟進一步包含:步驟1,基于LIRS的數據塊副本替換步驟,該步驟采取LIRS機制將數據塊副本存入數據塊緩存單元、數據塊副本被訪問以及數據塊副本退出數據塊緩存單元。步驟2,統計數據塊信息的步驟,該步驟在數據塊副本進入數據塊緩存單元和被訪問時,對數據塊引用進行累加計數。步驟3,數據塊統計信息上報步驟,當有數據塊副本退出數據塊緩存單元時,觸發上報上步驟統計的數據塊信息及該數據塊副本退出數據塊管理子系統所連接的數據塊緩存單元的時間信息。上述技術方案中,所述用于文件級的副本替換步驟進一步包含:步驟1,文件進入緩存步驟,該步驟在有對文件的讀寫請求時,觸發文件管理子系統從外部文件源處得到其所需的文件。步驟2,文件副本替換步驟,該步驟首先將上步驟得到的文件副本替換位于文件緩存單元中被引用為否的文件;其次在LIRS機制的基礎上,將引用距離和最近性之外的文件熱度指標作為文件是否退出緩存單元的依據,即當有若干個文件滿足引用距離和最近性指標退出緩存單元的條件時,要進一步選擇文件熱度低的文件作為最終退出文件緩存單元的文件。步驟3,更新文件的步驟,該步驟依據從數據塊管理子系統接收的數據塊統計信息,將數據塊的使用次數累加到對應數據塊的訪問次數,并當數據塊退出一數據塊管理子系統時,對該數據塊的被引用進行減I操作,當被引用計數為O時表示沒有數據管理子系統緩存或訪問該數據塊;依據各數據塊的訪問次數,更新文件熱度;依據各數據塊的被引用情況,更新文件被引用狀態。其中,所述數據塊統計信息包括使用次數、數據塊副本退出該數據塊管理子系統所連接的緩存單元的時刻。與目前的副本替換方法(典型采用LRU方法)相比,本發明具有如下技術效果:以LIRS方法為基礎,比LRU方法具有明顯優勢;在數據塊級副本替換方法中,對LIRS方法加以改進,引入引用計數上報步驟,同時在上報時隱含數據塊退出數據塊管理子系統緩存信息;在文件級副本替換方法中,對LIRS方法的改進是:優先替換被引用為否的文件,另外除引用距離、最近性之外,引入文件熱度指標。以上改進措施,考慮了廣域分布式系統中大型文件尺寸以及訪問分布規律,明顯地適用于⑶N等基于內容的服務系統等。
圖1是本發明的基于文件和數據塊兩級粒度的副本替換系統的組成框圖;圖2是本發明實施例的CDN應用場景示意圖;圖3是本發明的數據塊級副本替換方法流程圖;圖4是本發明的文件級副本替換方法流程圖。
具體實施例方式下面結合附圖對本發明的內容進行詳細介紹。本發明考慮大型文件尺寸條件下,在廣域分布式系統中,針對訪問分布于文件的不同位置、替換代價不同等特征,提供一種基于文件和數據塊兩級粒度的副本替換方法。本發明用于內容分發網絡(CDN)等內容服務系統(注:指提供內容服務的廣域系統,典型運行于互聯網等分布式環境之中,用于數字媒體傳輸、服務等),可有效地提高文件讀取的命中率,本發明基于比LRU方法表現好的LIRS方法,對LIRS方法進行了 3處改進,提高了大型媒體文件更新的效率。如圖1所示,本發明提供的基于文件和數據塊兩級粒度的副本替換系統包含:文件管理子系統、數據塊管理子系統,以及外部文件源(該實體不構成本專利組成部分)。所述文件管理子系統指負責文件請求處理、文件副本替換的軟件或設備;所述數據塊管理子系統指負責數據塊請求處理、訪問統計和數據塊副本替換的軟件或設備;所述文件管理子系統與數據塊管理子系統之間相互通信,即數據塊管理子系統負責向文件管理子系統及時報告數據塊的使用狀態(進入/退出數據塊緩存)。文件管理子系統和數據塊管理子系統之間是一對多的關系,而且所述文件管理子系統和每個數據塊管理子系統分別與文件緩存單元和數據塊緩存單元相關聯。上述技術方案中,所述文件管理子系統可以是硬件設備(如一臺服務器、一臺計算設備、一個服務器機群)或軟件程序。上述技術方案中,所述數據塊管理子系統可以是(如一臺服務器、一臺計算設備、一個服務器機群)或軟件程序。基于上述系統,本發明還提供的基于文件和數據塊兩級粒度的副本替換方法,包括數據塊級副本替換方法和文件級副本替換方法。其中數據塊級副本替換方法是文件級副本替換方法的低層信息來源。所述數據塊級副本替換方法包括如下操作:(I)基于LIRS的數據塊副本替換操作:數據塊進入、被訪問和退出緩存的機制采取LIRS機制。(2)數據塊統計操作:在數據塊進入、被訪問時,對數據塊引用進行累加計數。(3)數據塊統計信息上報操作:在數據塊退出緩存時,觸發該操作。所述文件級副本替換方法包括如下操作:(I)文件進入緩存操作:在有對文件的讀寫請求時,觸發文件管理子系統從外部文件源處得到文件。(2)文件副本替換操作:首先選擇文件被引用為否的文件加以替換;其次在LIRS機制的基礎上,除引用距離、最近性之外,引入文件熱度指標,作為第三項文件是否退出緩存的依據,即在有多個文件滿足前兩項指標退出緩存的條件時,要選擇文件熱度低的文件退出緩存。(3)文件管理子系統從數據塊管理子系統接收數據塊統計信息(包括使用次數、退出該數據塊管理子系統所管理緩存的時間),將數據塊的使用次數累加到對應數據塊的訪問次數,并當數據塊退出一數據塊管理子系統時,對該數據塊的被引用進行減I操作,當被引用計數為O時,表示沒有數據管理子系統緩存或訪問該數據塊;依據各數據塊的訪問次數,更新文件熱度;依據各數據塊的被引用情況,更新文件被引用狀態(是/否)。
實施例下面結合更加具體的應用場景說明基于文件和數據塊兩級粒度的副本替換方法。如圖2所示,本實施例提供的一個應用場景:一家CDN服務提供商(A),通過內容導入系統將內容提供商(B)的內容數據(表現為媒體文件)導入到CDN的存儲系統,之后由分布系統將媒體文件切片,分布到各地的存儲節點,由存儲節點完成對用戶請求的服務。在這一場景中,分布系統可作為文件管理子系統,除具備文件管理子系統的功能外,它還具有數據塊初始分布、分布調整的功能。各存儲節點上的存儲管理系統可作為數據塊管理子系統,該子系統除具備數據塊管理實體功能外,它還可具有本地文件系統等的功能。基于上述的對應關系,本實施例提供的基于文件和數據塊兩級粒度的副本替換方法,包括數據塊級副本替換方法和文件級副本替換方法。其中數據塊級副本替換方法是文件級副本替換方法的低層信息來源。所述數據塊級副本替換方法包括如下操作:(I)基于LIRS的數據塊副本替換操作:數據塊進入、被訪問和退出緩存的機制采取LIRS機制。(2)數據塊統計操作:在數據塊進入、被訪問時,對數據塊引用進行累加計數。(3)數據塊統計信息上報操作:在數據塊退出緩存時,觸發該操作。所述文件級副本替換方法包括如下操作:(I)文件進入緩存操作:在有對文件的讀寫請求時,觸發文件管理實體從外部文件源處得到文件。(2)文件副本替換操作:首先選擇文件被引用為否的文件加以替換;其次在LIRS機制的基礎上,除引用距離、最近性之外,引入文件熱度指標,作為第三項文件是否退出緩存的依據,即在有多個文件滿足前兩項指標退出緩存的條件時,要選擇文件熱度低的文件退出緩存。(3)文件管理子系統從數據塊管理子系統接收數據塊統計信息(包括使用次數、退出該數據塊管理實體所管理緩存的時間),將數據塊的使用次數累加到對應數據塊的訪問次數,并當數據塊退出一數據塊管理子系統時,對該數據塊的被引用進行減I操作,當被引用計數為O時,表示沒有數據管理實體緩存或訪問該數據塊;依據各數據塊的訪問次數,更新文件熱度;依據各數據塊的被引用情況,更新文件被引用狀態(是/否)。最后所應說明的是,以上實施例僅用以說明本發明的技術方案而非限制。盡管參照實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,對本發明的技術方案進行修改或者等同替換,都不脫離本發明技術方案的精神和范圍,其均應涵蓋在本發明的權利要求范圍當中。
權利要求
1.一種基于文件和數據塊兩級粒度的副本替換系統,該系統用于為廣域的基于內容分布式的系統提供一種數據副本替換策略,所述系統包含:文件管理子系統和數據塊管理子系統; 所述文件管理子系統,用于處理替換系統內部的文件請求并生成與其相連接的文件緩存單元的文件副本替換策略; 所述數據塊管理子系統,用于處理數據塊請求、進行訪問統計并生成與其相連的數據塊緩存單元的數據塊副本替換策略; 其中,所述數據塊管理子系統向所述文件管理子系統報告數據塊的使用狀態信息;所述文件管理子系統和數據塊管理子系統之間是一對多的關系。
2.根據權利要求1所述的基于文件和數據塊兩級粒度的副本替換系統,其特征在于,所述文件管理子系統進一步包含: 文件進入緩存單元:該單元在有對文件的讀寫請求時,從外部文件源處得到該文件;文件副本替換退出策略生成單元,該單元首先將文件進入緩存單元得到的最新文件替換位于文件緩存單元上的被引用為否的文件;其次在LIRS機制的基礎上,將引用距離和最近性之外的文件熱度指標作為文件是否退出文件緩存單元的依據,即當有若干個文件滿足引用距離和最近性指標退出文件緩存單元的條件時,要進一步選擇文件熱度低的文件作為最終退出文件緩存單元的文件;和 基于數據塊信息更新文件狀態信息的單元,該單元從數據塊管理子系統接收數據塊統計信息,將數據塊的使用次數累加到對應數據塊的訪問次數,且當數據塊退出數據塊管理子系統時,對該數據塊的被引用計數減1,當被引用計數值為O時,表示沒有數據塊管理子系統緩存或訪問該數據塊;依據各數據塊的訪問次數,更新文件熱度;依據各數據塊的被引用計數,更新文件被引用狀態; 其中,所述數據塊統計信息包`括數據塊的使用次數、數據塊退出所述數據塊管理子系統所連接的緩存單元的時刻。
3.根據權利要求2所述的基于文件和數據塊兩級粒度的副本替換系統,其特征在于,所述數據塊管理子系統進一步包含: 基于LIRS機制生成數據塊替換策略的單元,該單元采取LIRS機制處理所有數據塊進入數據塊緩存單元、數據塊被訪問和退出數據塊緩存單元的操作; 數據塊統計單元,該單元在數據塊進入數據塊緩存單元時和被訪問時,對數據塊引用進行累加計數; 數據塊統計信息上報單元,該單元在某數據塊退出數據塊緩存單元時,將該數據塊的退出信息及數據塊統計單元進行的累加計數信息同時上報所述基于數據塊信息更新文件狀態信息的單元。
4.一種基于文件和數據塊兩級粒度的副本替換方法,該方法用于為廣域的基于內容分布式的系統提供一種數據副本替換策略,所述方法包含: 用于數據塊級的副本替換步驟; 用于文件級的副本替換步驟; 其中,所述數據塊級的副本替換步驟為文件級的副本替換步驟提供低層信息來源,即所述數據塊級的副本替換步驟向所述文件級的副本替換步驟報告數據塊的使用狀態信息供其生成文件副本的替換策略。
5.根據權利要求4所述的基于文件和數據塊兩級粒度的副本替換方法,其特征在于,所述用于數據塊級的副本替換步驟進一步包含: 步驟1,基于LIRS的數據塊副本替換步驟,該步驟采取LIRS機制將數據塊副本存入數據塊緩存單元、數據塊副本被訪問以及數據塊副本退出數據塊緩存單元; 步驟2,統計數據塊信息的步驟,該步驟在數據塊副本進入數據塊緩存單元和被訪問時,對數據塊引用進行累加計數; 步驟3,數據塊統計信息上報步驟,當有數據塊副本退出數據塊緩存單元時,觸發上報上步驟統計的數據塊信息及該數據塊副本退出數據塊管理子系統所連接的數據塊緩存單元的時間信息。
6.根據權利要求5所述的基于文件和數據塊兩級粒度的副本替換方法,其特征在于,所述用于文件級的副本替換步驟進一步包含: 步驟1,文件進入緩存步 驟,該步驟在有對文件的讀寫請求時,觸發文件管理子系統從外部文件源處得到其所需的文件; 步驟2,文件副本替換步驟,該步驟首先將上步驟得到的文件副本替換位于文件緩存單元中被引用為否的文件;其次在LIRS機制的基礎上,將引用距離和最近性之外的文件熱度指標作為文件是否退出緩存單元的依據,即當有若干個文件滿足引用距離和最近性指標退出緩存單元的條件時,要進一步選擇文件熱度低的文件作為最終退出文件緩存單元的文件; 步驟3,更新文件的步驟,該步驟依據從數據塊管理子系統接收的數據塊統計信息,將數據塊的使用次數累加到對應數據塊的訪問次數,并當數據塊退出一數據塊管理子系統時,對該數據塊的被引用進行減I操作,當被引用計數為O時表示沒有數據管理子系統緩存或訪問該數據塊;依據各數據塊的訪問次數,更新文件熱度;依據各數據塊的被引用情況,更新文件被引用狀態; 其中,所述數據塊統計信息包括使用次數、數據塊副本退出該數據塊管理子系統所連接的緩存單元的時間。
全文摘要
本發明提供一種基于文件和數據塊兩級粒度的副本替換方法及系統,所述系統包含文件管理子系統和數據塊管理子系統;所述文件管理子系統,用于處理替換系統內部的文件請求并生成與其相連接的文件緩存單元的文件副本替換策略;所述數據塊管理子系統,用于處理數據塊請求、進行訪問統計并生成與其相連的數據塊緩存單元的數據塊副本替換策略;其中,所述數據塊管理子系統向所述文件管理子系統報告數據塊的使用狀態信息;所述文件管理子系統和數據塊管理子系統之間是一對多的關系。本發明考慮大型文件尺寸條件下廣域分布式系統中,對訪問分布于文件的不同位置、替換代價不同等特征,提供一種策略,用于提高基于內容的服務系統的文件讀取的命中率。
文檔編號G06F17/30GK103106213SQ20111036013
公開日2013年5月15日 申請日期2011年11月14日 優先權日2011年11月14日
發明者王玲芳, 程剛, 謝鐵兵 申請人:中國科學院聲學研究所, 北京中科華影傳媒技術有限公司