用于緩存管理的方法和系統的制作方法
【技術領域】
[0001]本發明的實施例涉及用于緩存管理的方法和系統。
【背景技術】
[0002]緩存(caching)是指將先前訪問過的內容存儲在本地存儲位置,從而允許對針對相同內容的后續訪問請求做出快速響應。緩存技術被廣泛地應用于計算機處理器、存儲系統、數據系統、網絡應用等各個不同的領域中。例如,在網絡環境中,用戶先前訪問的web頁面或者其他網絡內容可以被緩存在客戶端本地。當用戶再次訪問先前已經訪問過的web頁面時,可以直接從本地存儲中讀取和返回緩存的web頁面,從而縮短響應時間,并且降低對網絡帶寬資源和服務器計算資源的消耗。
[0003]處理緩存失效(cache invalidat1n)是緩存管理中的一個重要問題。緩存失效是指緩存的內容與該內容的實際最新版本不一致,從而使得緩存的內容喪失其應有的作用。緩存失效主要是由內容的后臺更新造成的。例如,當web服務器更新web頁面中的內容時,該web頁面在客戶端處的緩存條目將會失效。當一個緩存條目失效時,應當將其從緩存中移除。
[0004]基于時間來管理緩存失效的方案是已知的。每個緩存條目被指派一個固定的有效周期。當有效周期屆滿時,相應的緩存條目被確定為失效并且從緩存中被移除。然而在實踐中,很難設置合適的有效周期。一些緩存條目可能在被刪除時仍然是有效的。反之,另一些緩存條目在未被刪除時可能已經失效。
[0005]另一類方案基于事件規則來處理緩存失效。每個緩存條目可以與一個或多個預定事件相關聯。當預定事件之一發生時,相應的緩存條目被確定為失效并且從緩存中被刪除。然而,在涉及多方的分布式系統中,基于事件的緩存失效管理可能面臨困難。例如,在網絡電子商務環境中,web頁面通常在內容分發網絡(Content Distribut1n Network,Q)N)和企業內部的服務器或客戶端上都被緩存。此時,需要實現跨系統的事件觸發機制來管理緩存失效。然而,跨系統的事件觸發通常具有較高的開發和維護成本,而且受到應用的限制而難以保證通用性。
【發明內容】
[0006]總體上,本發明的實施例提出一種用于更加有效地管理緩存的技術方案。
[0007]在本發明的一個方面,提供一種緩存管理方法。所述方法包括:響應于緩存條目被創建,確定所述緩存條目的類別;確定與所述類別相關聯的失效事件的預計時間點,所述失效事件的發生將導致所述類別的緩存條目失效;以及基于所述預計時間點,設置所述緩存條目的有效周期。
[0008]在本發明的另一方面,提供一種緩存管理系統。所述系統包括:類別確定單元,被配置為響應于緩存條目被創建,確定所述緩存條目的類別;時間點確定單元,被配置為確定與所述類別相關聯的失效事件的預計時間點,所述失效事件的發生將導致所述類別的緩存條目失效;以及有效周期設置單元,被配置為基于所述預計時間點,設置所述緩存條目的有效周期。
[0009]根據本發明的實施例,基于時間和基于失效事件的緩存管理機制被有機地結合。緩存條目的有效周期不再被簡單地設置為固定的值,而是可以根據相應類別的失效事件的預計發生時間點而自適應地、靈活地設置。這樣,可以確保緩存條目的失效時間更加接近實際失效的時間。而且,根據本發明的實施例,不需要使用高成本的事件觸發機制。以此方式,可以對緩存進行更加準確和高效的管理。本發明的其他特征和優點將通過下文描述而變得容易理解。
【附圖說明】
[0010]通過結合附圖對本發明示例性實施方式進行更詳細的描述,本發明的上述以及其它目的、特征和優勢將變得更加明顯其中:
[0011]圖1示出了適于用來實現本發明實施例的示例性計算機系統/服務器的示意性框圖;
[0012]圖2示出了根據本發明實施例的用于管理緩存的方法的示意性流程圖;以及
[0013]圖3示出了根據本發明實施例的用于管理緩存的系統的示意性框圖。
[0014]在附圖中,相同或相似的標號被用來表示相同或相似的元素。
【具體實施方式】
[0015]下面將參照附圖更詳細地描述本公開的優選實施方式。雖然附圖中顯示了本公開的優選實施方式,然而應該理解,可以以各種形式實現本公開而不應被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整地傳達給本領域的技術人員。
[0016]圖1示出了適于用來實現本發明實施方式的示例性計算機系統/服務器12的方框圖。圖1顯示的計算機系統/服務器12僅僅是一個示例,不應對本發明實施例的功能和使用范圍帶來任何限制。
[0017]如圖1所示,計算機系統/服務器12以通用計算設備的形式表現。計算機系統/服務器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統存儲器28,連接不同系統組件(包括系統存儲器28和處理單元16)的總線18。
[0018]總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業標準體系結構(ISA)總線,微通道體系結構(MAC)總線,增強型ISA總線、視頻電子標準協會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0019]計算機系統/服務器12典型地包括多種計算機系統可讀介質。這些介質可以是任何能夠被計算機系統/服務器12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
[0020]系統存儲器28可以包括易失性存儲器形式的計算機系統可讀介質,例如隨機存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統/服務器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統存儲介質。僅作為舉例,存儲系統34可以用于讀寫不可移動的、非易失性磁介質(圖1未顯示,通常稱為“硬盤驅動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數據介質接口與總線18相連。存儲器28可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執行本發明各實施例的功能。
[0021]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括一但不限于一操作系統、一個或者多個應用程序、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環境的實現。程序模塊42通常執行本發明所描述的實施例中的功能和/或方法。
[0022]計算機系統/服務器12也可以與一個或多個外部設備14 (例如鍵盤、指向設備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統/服務器12交互的設備通信,和/或與使得該計算機系統/服務器12能與一個或多個其它計算設備進行通信的任何設備(例如網卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,計算機系統/服務器12還可以通過網絡適配器20與一個或者多個網絡(例如局域網(LAN),廣域網(WAN)和/或公共網絡,例如因特網)通信。如圖所示,網絡適配器20通過總線18與計算機系統/服務器12的其它模塊通信。應當明白,盡管圖中未示出,可以結合計算機系統/服務器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、RAID系統、磁帶驅動器以及數據備份存儲系統等。
[0023]下面將詳細描述本發明實施例的機制和原理。除非特別聲明,在下文和權利要求中使用的術語“基于”表示“至少部分地基于”。術語“包括”表示開放性包括,即“包括但不限于”。術語“多個”表示“兩個或者更多”。術語“一個實施例”表示“至少一個實施例”。術語“另一實施例”表示“至少一個另外的實施例”。其他術語的定義將在下文描述中給出。
[0024]圖2示出了根據本發明的實施例的用于管理緩存的方法200的流程圖。在下文描述中,可能將會參考網絡內容(例如,web頁面)來闡釋本發明的緩存管理機制。然而應當理解,這僅僅是示例性的,無意以任何方式對本發明的范圍進行限制。本發明的實施例可被用于管理任何適當類型的內容的緩存。
[0025]方法200開始于步驟S210,在此響應于緩存條目被創建,確定緩存條目的類別。以web頁面為例,當用戶第一次訪問該web頁面時,可以在客戶端的本地緩存中創建該web頁面的緩存條目。在一個實施例中,一個web頁面可以作為整體被保存在一個緩存條目中。備選地,在另一實施例中,可以為一個web頁面創建多個緩存條目,每個緩存條目中保存該web頁面的部分內容。特別地,在一個實施例中,與每個web頁面相關聯的緩存條目都與該web頁面的統一資源定位符(URL)相關聯。
[0026]響應于新的緩存