• / 18
  • 下載費用:30 金幣  

用于按需緩存的方法和數據處理系統.pdf

關 鍵 詞:
用于 緩存 方法 數據處理系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310396099.7

申請日:

2013.09.04

公開號:

CN103677664A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 3/06申請日:20130904|||公開
IPC分類號: G06F3/06; H04L29/08 主分類號: G06F3/06
申請人: 國際商業機器公司
發明人: R·M·諾倫納; S·R·帕蒂爾; A·K·塞恩; R·P·沃德; K·S·扎德布克
地址: 美國紐約
優先權: 2012.09.04 US 13/602,883
專利代理機構: 中國國際貿易促進委員會專利商標事務所 11038 代理人: 陳新
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310396099.7

授權公告號:

||||||

法律狀態公告日:

2016.09.14|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明提供了一種用于在廣域網(WAN)分離的分布式文件系統或集群式文件系統中按需緩存的數據處理系統中的機制。該機制監視在WAN分離的分布式文件系統或集群式文件系統中由多個緩存站點進行的文件訪問。該機制識別緩存站點的訪問模式。該機制與所述多個緩存站點共享訪問模式。所述多個緩存站點中的給定緩存站點將訪問模式與本地的訪問信息進行組合,并且基于組合的信息來識別要預取的文件。

權利要求書

權利要求書
1.  一種數據處理系統中的用于在分離的分布式文件系統或集群式文件系統中按需緩存的方法,該方法包括:
監視分離的分布式文件系統或集群式文件系統中由多個緩存站點進行的文件訪問;
識別緩存站點的訪問模式;以及
與所述多個緩存站點共享訪問模式,其中所述多個緩存站點中的給定緩存站點將訪問模式與本地的訪問信息進行組合,并且基于組合的信息來識別要預取的文件。

2.  根據權利要求1所述的方法,其中主站點維護關于分離的分布式文件系統或集群式文件系統中的文件的文件訪問模式的統計信息。

3.  根據權利要求2所述的方法,進一步包括:
執行分析以識別至少一個活躍文件;以及
響應于識別出至少一個活躍文件,向所述多個緩存站點中的至少一個緩存站點通知所述至少一個活躍文件,其中所述至少一個緩存站點預取所述至少一個活躍文件。

4.  根據權利要求3所述的方法,其中所述給定緩存站點執行分析以識別要預取的文件并生成預取調度。

5.  根據權利要求3所述的方法,其中所述給定緩存站點重置至少一個再驗證間隔。

6.  根據權利要求13所述的方法,其中監視文件訪問包括在活躍度表格中記錄文件訪問,其中活躍度表格是由從0到預定間隔P的時 間和粒度G索引的二維表格,其中活躍度表格中的每個元素是讀和寫元素的鏈表。

7.  根據權利要求6所述的方法,其中識別緩存站點的訪問模式包括:
將活躍度表格轉換為排序的活躍度表格,其中排序的活躍度表格中的每個元素是按照時間排序的讀和寫元素的鏈表;以及
通過為排序的活躍度表格中只具有讀的每個元素創建至在前的寫的鏈接以及為排序的活躍度表格中只具有寫的每個元素創建至下一個讀集合的鏈接,將排序的活躍度表格轉變為經轉變的活躍度表格。

8.  根據權利要求7所述的方法,其中共享訪問模式包括將經轉變的活躍度表格發送給所述多個緩存站點。

9.  根據權利要求7所述的方法,進一步包括:
響應于在主站點處接收到對數據元素的寫,基于經轉變的活躍度表格來確定后續的所預測的來自至少一個緩存站點的讀;以及
向所述至少一個緩存站點推送所述數據元素。

10.  一種用于在分離的分布式文件系統或集群式文件系統中按需緩存的數據處理系統,其包括用于實施權利要求1-9中的任何方法的任何步驟的部件。

11.  一種裝置,包括:
處理器;以及
耦合到處理器的存儲器,其中存儲器包括指令,當指令由處理器執行時,使得處理器:
監視分離的分布式文件系統或集群式文件系統中由多個緩 存站點進行的文件訪問;
識別緩存站點的訪問模式;以及
與所述多個緩存站點共享訪問模式,其中所述多個緩存站點內的給定緩存站點將訪問模式與本地的訪問信息進行組合,并且基于組合的信息來識別要預取的文件。

12.  根據權利要求11所述的裝置,其中主站點維護關于分離的分布式文件系統或集群式文件系統中的文件的文件訪問模式的統計信息,其中指令進一步使得處理器:
執行分析以識別至少一個活躍文件;以及
響應于識別出至少一個活躍文件,向所述多個緩存站點中的至少一個緩存站點通知所述至少一個活躍文件,其中所述至少一個緩存站點預取所述至少一個活躍文件。

說明書

說明書用于按需緩存的方法和數據處理系統
技術領域
本申請一般地涉及改進的數據處理裝置和方法,更具體地涉及用于在廣域網(WAN)分離的分布式文件系統或集群式文件系統的緩存(cache)中按需緩存(on-demand caching)的機制。
背景技術
存在用于實現廣域網(WAN)緩存的架構。主站點可以是通用并行文件系統(GPFS)或由網絡文件系統(NFS)導出的任何其它文件系統。多個緩存站點通過網絡連接至主站點。多個緩存站點可以NFS掛載主NFS出口。只有一個緩存站點被允許對用于特定NFS出口的緩存中的文件進行寫操作。其它站點是只讀緩存站點,其可以了解來自主站點的更新并將這些更新拉取(pull)到緩存站點中。然而,緩存站點不能向主站點發送對文件和目錄的任何寫或更新。多個緩存站點可以是針對來自主站點的不同NFS出口的單個寫入器。
發明內容
在一個說明性實施例中,提供了一種數據處理系統中的用于在分離的分布式文件系統或集群式文件系統中按需緩存的方法。該方法包括監視并行文件系統中由多個緩存站點進行的文件訪問。該方法進一步包括識別緩存站點的訪問模式。該方法還包括與所述多個緩存站點共享訪問模式。所述多個緩存站點中的給定緩存站點將訪問模式與本地的訪問信息進行組合,并且基于組合的信息來識別要調度預取的文件。
在其它的說明性實施例中,提供了一種包括具有計算機可讀程序的計算機可用或可讀介質的計算機程序產品。當計算機可讀程序在計 算設備上被執行時,使得計算設備執行上面關于方法說明性實施例概述的操作中的各種操作及其組合。
在又一個說明性實施例中,提供了一種系統/裝置。該系統/裝置包括一個或多個處理器和耦合到所述一個或多個處理器的存儲器。存儲器可以包括指令,當指令由一個或多個處理器執行時,使得一個或多個處理器執行上面關于方法說明性實施例概述的操作中的各種操作及其組合。
這些以及本發明的其它特征和優點將在下面的本發明的示例實施例的詳細說明中描述,或者基于下面的詳細說明而對具備所屬領域普通技能的人而言變得清楚。
附圖說明
本發明和優選使用模式以及其目標和優勢可以通過參照下面結合附圖的對說明性實施例的詳細描述而最好地理解,其中:
圖1描繪了在其中可以實施說明性實施例的方面的示例分布式數據處理系統的圖形表示;
圖2是在其中可以實施說明性實施例的方面的示例分布式數據處理系統的框圖;
圖3描繪了在其中可以實施說明性實施例的方面的示例WAN分離的分布式文件系統或集群式文件系統;
圖4描繪了根據說明性實施例的主站點確定文件活躍度;
圖5描繪了根據說明性實施例的基于具有按需緩存的WAN分離的分布式文件系統或集群式文件系統中的信息而共享分析和統計信息以及預取;
圖6是根據說明性實施例的說明WAN分離的分布式文件系統或集群式文件系統中的具有按需緩存的緩存站點的操作的流程圖;
圖7是根據說明性實施例的說明WAN分離的分布式文件系統或集群式文件系統中的用于按需緩存的主站點的操作的流程圖;
圖8是根據說明性實施例的說明緩存站點調度預取的操作的流程 圖;
圖9是根據說明性實施例的說明緩存站點執行訪問信息的統計分析的操作的流程圖。
具體實施方式
說明性實施例提供了一種用于在WAN分離的分布式文件系統或集群式文件系統中按需緩存的機制。該機制把在一時間窗口期間已經被活躍使用的或在一時間段內具有多個用戶的文件歸類為活躍文件。該時間窗口或該時間段可以是根據所需粒度可變的或固定的。該機制可以使用多個時間窗口,在這多個時間窗口內同一文件或多個不同文件可以變得活躍。
主站點可以在中央位置處。由于主站點大體了解大部分的寫和未緩存的讀,因此其知曉哪些文件是活躍的。主站點還能夠執行某些統計分析。例如,主站點能夠在幾天、幾周或幾個月的時段中確定哪些文件在哪個時間點開始變得活躍、到達最高點、以及接著變得靜止。主站點整理該信息并將其饋送給緩存站點,因而緩存站點能夠執行針對性的文件預填充(pre-population)/預取。基于提供的信息,緩存站點能夠減小針對特定文件的再驗證間隔。對于特定的活躍文件,當寫到來時,主站點可以向緩存站點發送回叫(callback)。
可以在許多不同類型的數據處理環境中利用所述說明性實施例。為了提供描述說明性實施例的特定元件和功能的上下文,隨后提供了圖1和圖2作為在其中可以實施說明性實施例的方面的示例環境。應當了解,圖1和圖2只是示例,并非旨在斷言或暗示關于在其中可以實施本發明的實施例的方面的環境的任何限制。在不偏離本發明的精神和范圍的情況下,可以對所描繪的環境進行許多修改。
圖1描繪了在其中可以實施說明性實施例的方面的示例分布式數據處理系統的圖形表示。分布式數據處理系統100可以包括在其中可以實施說明性實施例的方面的計算機網絡。分布式數據處理系統100包含至少一個網絡102,網絡102是用來提供分布式數據處理系統100 內連接在一起的各種設備與計算機之間的通信鏈路的媒介。網絡102可以包括諸如有線、無線通信鏈路或光纜的連接。
在描繪的示例中,服務器104和服務器106連同存儲單元108連接至網絡102。另外,客戶端110、112和114也連接至網絡102。這些客戶端110、112和114可以是例如個人計算機、網絡計算機等等。在描繪的示例中,服務器104向客戶端110、112和114提供數據,諸如引導文件、操作系統映像和應用。在描繪的示例中,客戶端110、112和114是服務器104的客戶端。分布式數據處理系統100可以包括附加的服務器、客戶端以及其它未示出的設備。
在描繪的示例中,分布式數據處理系統100是因特網,其中網絡102表示世界范圍內的使用傳輸控制協議/互聯網協議(TCP/IP)協議組相互通信的網絡和網關的集合。在因特網的核心處是主節點或主計算機之間的骨干高速數據通信線路,其由成千上萬的用于路由數據和消息的商業、政府、教育以及其它計算機系統組成。當然,分布式數據處理系統100也可以被實施為包括許多不同類型的網絡,諸如例如內聯網、局域網(LAN)、廣域網(WAN)等等。如上所述,圖1旨在作為示例,而非作為對本發明的不同實施例的架構限制,因此,圖1所示的特定元件不應當認為是對在其中可以實施本發明的說明性實施例的環境的限制。
圖2是在其中可以實施說明性實施例的方面的示例數據處理系統的框圖。數據處理系統200是諸如圖1中的客戶端的計算機的示例,實施用于本發明的說明性實施例的處理的計算機可用的代碼或指令可以位于其中。
在描繪的示例中,數據處理系統200采用包括北橋和存儲器控制器集線器(NB/MCH)202以及南橋和輸入/輸出(I/O)控制器集線器(SB/ICH)204的集線器架構。處理單元206、主存儲器208和圖形處理器210連接至NB/MCH202。圖形處理器210可以通過加速圖形端口(AGP)連接至NB/MCH202。
在描繪的示例中,局域網(LAN)適配器212連接至SB/ICH204。 音頻適配器216、鍵盤和鼠標適配器220、調制解調器222、只讀存儲器(ROM)224、硬盤驅動器(HDD)226、CD-ROM驅動器230、通用串行總線(USB)端口以及其它通信端口232和PCI/PCIe設備234通過總線238和總線240連接至SB/ICH204。PCI/PCIe設備可以包括例如以太網適配器、插入卡和用于筆記本計算機的PC卡。PCI使用卡總線控制器,而PCIe則不使用卡總線控制器。ROM224可以是例如快閃基本輸入/輸出系統(BIOS)。
HDD226和CD-ROM驅動器230通過總線240連接至SB/ICH204。HDD226和CD-ROM驅動器230可以使用例如集成驅動電路(IDE)或串行高級技術附件(SATA)接口。超級I/O(SIO)設備236可以連接至SB/ICH204。
操作系統運行在處理單元206上。操作系統協調和提供圖2中的數據處理系統200內的各種組件的控制。作為客戶端,操作系統可以是諸如微軟Windows7(微軟和Windows是微軟公司在美國、其它國家或在美國和其它國家的商標)的商用操作系統。諸如Java編程系統的面向對象編程系統可以結合操作系統運行并從Java程序或在數據處理系統200上執行的應用向操作系統提供調用(Java是Oracle和/或其附屬公司的商標)。
作為服務器,數據處理系統200可以是例如運行高級交互執行程序操作系統或LINUX操作系統的eServerTM計算機系統(IBM、eServer、System p和AIX是國際商用機器公司在美國、其它國家或在美國和其它國家的商標,LINUX是李納斯·托沃茲(Linus Torvalds)在美國、其它國家或在美國和其它國家的注冊商標)。數據處理系統200可以是在處理單元206中包括多個處理器的對稱多處理器(SMP)系統。另選地,可以采用單處理器系統。
用于操作系統的指令、面向對象編程系統和應用或程序位于諸如HDD226的存儲設備上,并可以裝入到主存儲器208中用于由處理單元206執行。用于本發明的說明性實施例的處理可以由處理單元206利用計算機可用的程序代碼來執行,計算機可用的程序代碼可以例如 位于存儲器中,諸如主存儲器208、ROM224或一個或多個外圍設備226和230中。
諸如圖2所示的總線238或總線240的總線系統可以由一個或多個總線組成。當然,總線系統可以利用任何類型的通信結構或架構來實施,該通信結構或架構提供附接至所述結構或架構的不同組件或設備之間的數據傳送。諸如圖2的調制解調器222或網絡適配器212的通信單元可以包括一個或多個用來發送和接收數據的設備。存儲器可以是例如主存儲器208、ROM224或諸如圖2的NB/MCH202中的緩存。
本領域技術人員會清楚,根據實現方式,圖1和圖2中的硬件可以變化。其它內部硬件或外圍設備,諸如閃存、等效的非易失性存儲器、或光盤驅動器等等,可以附加于圖1和圖2描繪的硬件或代替圖1和圖2描繪的硬件來使用。同樣,在不偏離本發明的精神和范圍的情況下,說明性實施例的處理可以應用于前面提及的SMP系統以外的多處理器數據處理系統。
此外,數據處理系統200可以采用許多不同的數據處理系統中的任何形式,包括客戶端計算設備、服務器計算設備、平板計算機、膝上型計算機、電話或其它通信設備、個人數字助理(PDA)等等。在一些說明性示例中,數據處理系統200可以是便攜式計算設備,其配置有閃存以提供非易失性存儲器用于存儲例如操作系統文件和/或用戶生成的數據。本質上,數據處理系統200可以是任何已知的或以后開發的數據處理系統,而不具有架構限制。
回到圖1,分布式數據處理系統100可以采用通用并行文件系統(GPFS),在該系統中諸如服務器104的一個節點是主站點,諸如客戶端110、112、114以及服務器106的其它節點可以是緩存站點。圖3描繪了在其中可以實施說明性實施例的方面的示例WAN分離分布系文件系統或集群式文件系統。主站點310連接至緩存站點301-306。緩存站點301-305對于一個或多個文件掛載(file mounts)是只讀站點,而緩存站點306是用于文件掛載的寫緩存。
WAN分離的分布式文件系統或集群式文件系統緩存是基于按需緩存的概念的。當文件被訪問時,存在三種可能的不同場景:
1、文件最近已經被取得。在這個模型中,存在對特定文件的訪問。如果文件已經存在于緩存站點處且文件是在被稱為再驗證間隔的預定間隔內被存儲在緩存站點處的,則該文件可以在緩存中被直接訪問,使其成為本地訪問,本地訪問是非常快的。
2、文件最近還未被取得。如果文件存在于緩存站點處但自文件存儲在緩存站點處起已經超過了再驗證間隔,則緩存站點對照主站點副本執行再驗證處理。緩存站點接著對主站點執行查找以獲得被修改時間和改變時間屬性。如果文件在主站點處的被修改時間和改變時間與緩存站點處的文件的值不同,則從主站點重取該文件到緩存站點。
3、文件在緩存站點處不存在。如果文件在緩存站點處不存在,則緩存站點從主站點取得文件。
當然,在后面的兩種情況中,應用經歷訪問延時,該訪問延時與文件大小和至主站點的鏈路的帶寬直接成比例。
具有按需緩存的WAN分離的分布式文件系統或集群式文件系統可以經歷兩種情況:對文件的冷訪問和過期訪問(stale access)。當緩存站點確定文件在主站點處被修改且必須重取時是過期訪問。在某些約束下用于對文件的首次訪問或過期訪問的時間與文件大小和鏈路帶寬直接成比例。在低速鏈路或有限帶寬鏈路的情況中,這可能是顯著的開銷。預填充可以在一定程度上減輕首次訪問的問題;然而,當文件在長時間內未被訪問時,文件必須被從主站點重取,再次引入了延時。
一些解決方案可以基于預填充和基于文件的預取。這里預填充意指在整個文件被需要之前,將整個文件從主站點取得至緩存站點。如果整個文件相對于主站點版本是過期的,則預填充會重取緩存中的整個文件。預取意指在文件的部分被需要之前,將文件的部分從主站點取得。預取包括重取,即,當這些文件的緩存部分與這些文件的主站點部分不同步時,從主站點更新文件的過期部分。預填充可以幫助減 輕首次訪問的成本;然而,其通常由管理員執行,而且不是減小首次訪問時間的自動化方法。其也不能動態地適應訪問模式的改變,除非管理員修改預填充方案。一般地,預填充是向空緩存引入數據的一次性動作。文件數據預取不解決首次訪問或后續過期訪問的時間滯后/延時的問題。準確地說,其解決的是在首次訪問后在文件其它部分的數據被需要之前具有這些數據的問題。
說明性實施例的機制使用了活躍文件的概念,活躍文件可以被歸類為要么在一時間窗口期間已經被活躍地使用要么在一時間段內具有多個用戶的那些文件。該時間窗口或時間段可以是基于所需粒度可變的或固定的。另選地,所述機制可以使用多個時間窗口,在這多個時間窗口內同一文件或多個不同文件可以變得活躍。
在具有按需緩存的WAN分離的分布式文件系統或集群式文件系統中,主站點一般位于中央位置處。由于主站點大體了解大部分的文件寫和未緩存的讀,因此其知曉哪些文件是活躍的。主站點也能夠執行某些統計分析。例如,主站點能夠在幾天、幾周或幾個月的時段中確定哪些文件在哪些時間點開始變得活躍、到達最高點、以及接著變得靜止。主站點能夠整理該信息并將其饋送給緩存站點,因而當需要時,緩存站點能夠執行針對性的文件預填充/預取。基于提供的信息,緩存站點也能夠減小其針對特定文件的再驗證間隔。對于特定的活躍文件,每當寫到來時,主站點可以向緩存站點發送回叫。
主站點確定文件或文件集合的“熱度”。主站點接著向緩存站點提供該信息。對于非常活躍的文件,主站點可以向緩存站點提供回叫。
圖4描繪了根據說明性實施例的主站點確定文件活躍度。緩存站點401接收針對文件F402的寫。主站點410維護F的熱度的統計信息403。文件或文件集合的熱度可以基于到達文件的寫以及還基于來自不同緩存站點的讀以及在一時間段內具有多個用戶。同樣,在不同時段期間,不同的文件可以是活躍的。主站點410存儲和整理該信息,以確定訪問模式。
主站點410可以是幾個不同的單寫入器緩存站點的目標。主站點 410能夠跨掛載點或目錄來關聯信息。例如,第一掛載點目錄中的第一文件可以在第二掛載點目錄中的第二文件被寫的同時被寫。同樣,確定文件的共享模式是重要的。例如,對文件的寫可以繼之以對文件集合的讀,接著繼之以來自另一個節點的寫。關于共享模式的信息可以是不斷演變的。訪問模式的歷史必須被存儲。例如,特定文件可能在周三下午2:00至下午3:00之間被大量地訪問和修改。類似的信息是有價值的,并且可以由緩存站點使用以發揮優點。
圖5描繪了根據說明性實施例的基于具有按需緩存的WAN分離的分布式文件系統或集群式文件系統中的信息而共享分析和統計信息以及預取。周期性地,主站點510與不同的緩存站點501、502、506共享訪問模式和活躍度。緩存站點501、502、506將來自主站點510的模式信息與其在本地擁有的關于其連接的客戶端的訪問模式的信息進行組合。緩存站點501、502、506接著嘗試預取或調度預取最有可能被訪問的文件。
有時,可能存在非常活躍的且被大量訪問的文件。由于這是新近的模式,所以該信息可能尚未對其它緩存站點可用。根據示例性實施例,可以規定安裝“鉤子(hook)”,“鉤子”會向緩存站點回叫或調出(callout),來通知緩存站點其可能需要預取數據至緩存以補償該文件的按需代價。
統計分析涉及用在不同的緩存站點間傳播的試探模式來加權數據,以幫助調度預測的文件預取。一個示例:如果用戶A從給定緩存站點訪問針對給定事件的數據X;并且通過基于試探的統計分析,暗示在預定時間間隔內數據Y會被該用戶從相同的緩存訪問,則推薦/預測數據Y被預取(聲明其在下一預定時間間隔內非常活躍)以在該特定事件和時間期間用于該特定緩存會有助于使得緩存更加高效。
這里是一個這樣的用于實施例的示例,以有助于描述其實施。
對于算法A,考慮下列命名:
R(x,t,c):在時間t對特定數據元素x的讀,其中t是在被指定為主站點的中央站點處的時間,c是緩存集群ID。
W(x,t,c):在時間t對特定數據元素x的寫,其中t是在被指定為主站點的中央站點處的時間,c是緩存集群ID。
T(t,x):T是由從0到間隔P(其中P是預定值,例如24小時)的時間和粒度G(例如1秒)沿著x軸索引的二維表格。T中的每個元素是R(x,t,c)和W(x,t,c)元素的鏈表。這些元素沒有特定的次序。
T'(t,x):T'是結構類似于T的二維表格。T與T'之間的差別是T'中的每個元素是R(x,t,c)和W(x,t,c)元素的鏈表束(針對每個數據元素x一個鏈表),其中每個鏈表按到達時間t排序。
T''(t,x):T''類似于T',并增加了圖表元素之間的鏈接。T''是持久性的,并有助于建立試探和演變。
M:整合(consolidation)時間間隔。
D:整合間隔粒度。
G:時間間隔粒度。
P:粒度G中的特定重現間隔。
該算法如下進行:
步驟S:在每個時間間隔M,在中央站點處執行如下步驟:
a.通過沿著x軸組合D/G鄰近元素,將T轉換為具有粒度D的新表格T',以使得具有按時間順序的對同一數據元素x的讀/寫序列的列表。
b.進一步將T'轉換為T'',以使得:
i.如果圖表T'中任何具有數據元素x的特定元素只具有讀,則創建至在前的對x的寫的鏈接(如果其存在)。
ii.如果任何具有數據條目x的特定表格條目只具有寫,則創建至下一個讀集合(可能在另一個格子元素中)的鏈接。
算法A只是實施細節,并不旨在限制說明性實施例。所屬領域技術人員能夠容易地用其它公知的統計算法,如統計推斷、馬爾科夫模型等,來代替步驟S。
在中央站點/主站點處的通用I/O路徑中:
對于到來的W(x,t,c):
i.根據其位于的時間間隔,用合適的格子條目中的“寫”信息來更新現有的表格T。
ii.使用表格T'',確定后續所預測的來自其它緩存集群的對數據元素x的“讀”(如果其存在)。如果后續“讀”存在,則向該緩存集群站點推送“讀”。
對于到來的R(x,t,c):
i.根據其位于的時間間隔,用合適的表格條目中的“讀”信息來更新現有的表格T。
算法B:中央站點或主站點與緩存站點共享表格T''的內容。緩存站點基于其訪問模式確定其想要拉取的數據元素。
算法C:對于其訪問模式未在T''中表示的非常活躍的文件,中央站點或主站點向緩存站點發送回叫。接著,緩存站點決定其是否想要拉取該文件。
所屬技術領域的技術人員知道,本發明的各個方面可以實現為系統、方法或計算機程序產品。因此,本發明的各個方面可以具體實現為以下形式,即:完全的硬件實施例、完全的軟件實施例(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施例,這里可以統稱為“電路”、“模塊”或“系統”。此外,在一些實施例中,本發明的各個方面還可以實現為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可用的程序代碼。
可以采用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或設備,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是 任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數字信號,其中承載了計算機可讀的程序代碼。這種傳播的數字信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者設備使用或者與其結合使用的程序。
計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括——但不限于——無線、有線、光纜、RF等等,或者上述的任意合適的組合。
可以以一種或多種程序設計語言的任意組合來編寫用于執行本發明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言—諸如Java、Smalltalk、C++等,還包括常規的過程式程序設計語言—諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡——包括局域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
下面將參照根據本發明的說明性實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或框圖描述本發明。應當理解,流程圖和/或框圖的每個框以及流程圖和/或框圖中各框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個框中規定 的功能/動作的裝置。
也可以把這些計算機程序指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其它設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個框中規定的功能/動作的指令的制造品(article of manufacture)。
計算機程序指令也可以加載到計算機、其它可編程數據處理裝置或其它設備上,以引起一系列操作步驟在該計算機、其它可編程裝置或其它設備上被執行以產生計算機實施的處理,從而在該計算機或其它可編程裝置上執行的指令提供用于實施在流程圖中和/或在框圖的一個或多個框中指定的功能/動作的處理。
圖6是根據說明性實施例的說明WAN分離的分布式文件系統或集群式文件系統中具有按需緩存的緩存站點的操作的流程圖。當緩存站點經歷由客戶端進行的文件訪問(框600)時,操作開始。緩存站點確定文件是否在其本地緩存中(框601)。如果文件不在本地緩存中,則緩存站點從主站點取得文件(框602),并且操作結束(框603)。
如果緩存站點確定文件在本地緩存中(框601),則緩存站點確定文件是否是最近被取得的(框604)。緩存站點確定文件是否是在預定時間閾值內被取得的。如果文件是最近被取得的,緩存站點直接在本地緩存中訪問文件(框605),并且操作結束。
如果在框604中,緩存站點確定文件不是最近取得的,則緩存站點對照主站點副本執行再驗證(框607)。為了執行再驗證,緩存站點從主站點獲得文件的被修改時間和改變時間屬性,并將其與本地緩存中的文件副本的相同屬性進行比較。緩存站點確定本地文件的時間屬性是否與在主站點處的文件的時間屬性匹配(框608)。如果屬性不匹配,緩存站點則從主站點取得文件(框602),并且操作結束。如果在框608中屬性匹配,則緩存站點直接在本地緩存中訪問文件(框605),并且操作結束(框606)。
圖7是根據說明性實施例的說明WAN分離的分布式文件系統或 集群式文件系統中用于按需緩存的主站點的操作的流程圖。操作開始(框700)。主站點監視文件訪問(框701)并與緩存站點共享訪問模式(框702)。訪問模式可以作為表格T''而被共享。
主站點執行分析以識別非常活躍的文件(框703)。該分析可以識別在預定時間窗口期間已經被活躍地使用的文件和/或在一時間段內具有多個用戶的文件。該時間窗口和時間段可以是根據所需的粒度可變的或固定的。如上所述,主站點可以在框703中基于表格T''而執行統計分析。主站點接著確定是否識別出一個或多個活躍文件(框704)。如果識別出活躍文件,則主站點向緩存站點通知所識別的活躍文件(框705),并且操作結束(框706)。如果主站點在框704中沒有檢測到活躍文件,則操作結束。主站點可以周期性地重復圖7的操作,以持續地向緩存站點提供用于預取調度的信息。
圖8是根據說明性實施例的說明緩存站點調度預取的操作的流程圖。操作開始(框800),緩存站點與主站點共享訪問模式(框801)。在框801中,緩存站點可以接收表格T'',表格T''識別預定時間段P內的讀和寫。緩存站點將來自主站點的訪問信息與本地訪問信息組合(框802)。緩存站點接著執行分析以識別要預取的文件,生成預取調度,并設置再驗證間隔(框803)。此后,操作結束(框804)。
圖9是根據說明性實施例的說明緩存站點執行訪問信息的統計分析的操作的流程圖。操作開始(框900),主站點接收具有讀訪問的鏈表和寫訪問的鏈表的活躍度表格T(框901)。T(t,x)是由從0到間隔P(其中P是預定值,例如24小時)的時間和粒度G(例如1秒)沿著x軸索引的二維表格。T中的每個元素是R(x,t,c)和W(x,t,c)元素的鏈表。這些元素沒有特定的次序。主站點接著將活躍度表格T轉換為排序鏈表的表格T'(框902)。T'(t,x)是結構與T類似的二維表格。T與T'之間的差別是T'中的每個元素是R(x,t,c)和W(x,t,c)元素的鏈表束(針對每個數據元素x一個鏈表),其中每個鏈表按到達時間t排序。
主站點接著確定T'中的任何元素是否只具有讀(框903)。如果 一元素只具有讀,則主站點創建至在前的寫的鏈接(框904)。此后,或者如果在T'中沒有元素只具有讀(框903),則主站點確定T'中的任何元素是否只具有寫(框905)。如果一元素只具有寫,則主站點創建至下一個讀集合的鏈接(框906)。框903-906的操作產生更新的活躍度表格T''。T''(t,x)類似于T',并增加了圖表元素之間的鏈接。T''是持久性的,有助于建立試探和演變。
此后,或者如果在T'中沒有元素只具有寫(框905),則主站點確定是否遇到到來的寫(框907)。如果遇到對主站點處的數據元素的寫,則主站點更新活躍度表格T(框908)。主站點接著使用T''來確定后續的所預測的來自一個或多個其它緩存集群的對該數據元素的讀(框909)。主站點向所述一個或多個緩存集群推送該數據元素(框910)。此后,操作返回至框902來將活躍度表格轉換為排序鏈表的表格。
如果主站點在框907中沒有遇到寫,則主站點確定是否遇到到來的讀(框911)。如果在主站點處遇到對數據元素的讀,則主站點更新活躍度表格T(框912)。此后,或者如果主站點在框911中沒有遇到讀,操作返回至902來將活躍度表格轉換為排序鏈表的表格。
附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個連續的框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個框、以及框圖和/或流程圖中的框的組合,可以用執行規定的功能或動作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
因此,說明性實施例提供了用于在WAN分離的分布式文件系統 或集群式文件系統中按需緩存的機制。該機制減小了首次訪問的代價。預期的減小有賴于預測邏輯的準確度。該減小也有賴于在緩存站點與主站點之間共享信息的周期。對于至少一些首次訪問或冷訪問,時間與本地訪問是相當的。該機制還可以用于諸如網絡文件系統的網絡附加存儲(network-attached storage)解決方案。
上面已經看到,應當理解說明性實施例可以采用完全硬件的實施例、完全軟件的實施例或者同時包含硬件和軟件元素的實施例的形式。在一個示例實施例中,說明性實施例的機制被實施為軟件或程序代碼,其包括但不限于固件、駐留軟件、微代碼等等。
適合于存儲和/或執行程序代碼的數據處理系統包括至少一個通過系統總線直接或間接地耦合到存儲器元件的處理器。存儲器元件可以包括在實際執行程序代碼期間采用的本地存儲器、大容量存儲器、以及提供至少一些程序代碼的暫時存儲以減少在執行期間必須從大容量存儲器中重取代碼的次數的高速緩沖存儲器。
輸入/輸出或I/O設備(包括但不限于鍵盤、顯示器、指點設備等)可以直接地或者通過居間的I/O控制器來耦合到系統。網絡適配器也可以耦合到系統以使得數據處理系統能夠通過居間的專用或公共網絡而耦合到其它數據處理系統或遠程打印機或存儲設備。調制解調器、線纜調制解調器和以太網卡僅是當前可獲得的網絡適配器類型中的幾種。
給出本發明的說明書的目的在于說明和描述,并非旨在窮舉或將本發明限制于公開的形式。對于具備所屬領域普通技能的人員來說,多種修改和變型是明顯的。選擇并描述實施例來最好地解釋本發明的原理、實際應用,并使得具備所屬領域普通技能的人員能夠理解具有與特定預期用途相稱的各種修改的本發明的各種實施例。

關于本文
本文標題:用于按需緩存的方法和數據處理系統.pdf
鏈接地址:http://www.pqsozv.live/p-6180583.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影