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