專利名稱:一種緩存管理方法
技術領域:
本發(fā)明涉及web緩存技術,特別是指一種緩存管理方法。
背景技術:
web緩存技術是在緩存中存放被訪問過的web文檔的副本的技術,當需要再次訪問該web文檔時,可以直接從緩存中取出該文檔返回給用戶。
下面結合圖1詳細介紹現(xiàn)有的web緩存管理的通常的處理流程。
步驟101用戶請求一個web文檔O。
步驟102判斷用戶請求的web文檔O是否在緩存中,如果是,則執(zhí)行步驟103;否則,執(zhí)行步驟105。
步驟103比較請求的web文檔O與緩存中的web文檔O的大小和最后刷新時間,判斷該緩存中的web文檔O是否已過期,如果已過期,則執(zhí)行步驟104;否則,執(zhí)行步驟108。
步驟104刪除緩存中該過期的web文檔O。
步驟105從遠程web服務器中獲取被請求的web文檔O,并返回給用戶。
步驟106比較該web文檔O的大小與緩存中剩余空間的大小,判斷緩存中是否有足夠的空間存放該web文檔O,如果沒有,則執(zhí)行步驟107;如果有,則執(zhí)行步驟109。
步驟107從緩存中依次刪除權重最低的對象,直到緩存中有足夠的剩余空間來存放該web文檔O,然后執(zhí)行步驟109。
步驟108從緩存中獲取該web文檔O,并返回給用戶。
步驟109更新web文檔O的相關屬性和權重,并將web文檔O存放到緩存中,結束本流程。
以上現(xiàn)有的web緩存管理方法中,最主要的缺點在于使用單隊列管理web緩存,單隊列web緩存管理中只存在一個隊列,因此緩存管理的時間復雜度較高。
對于上述web緩存管理流程中,影響web緩存使用效率的問題為步驟107中的刪除權重最低的對象以存放當前被請求的web文檔的替換策略,以及步驟109中的存放策略。其中,緩存替換是指當緩存已滿時用新的web文檔替換舊的web文檔的過程。對于所述替換策略和存放策略,現(xiàn)有技術中有很多處理方法,都存在一些缺點,概括如下現(xiàn)有的web緩存替換中,沒有考慮利用web文檔的最近訪問歷史來評估該web文檔可能再次被訪問的概率;現(xiàn)有的web緩存替換算法中,一些方法側重時間局限性,一些方法側重空間局限性,沒有有效地基于時間引用,也沒有根據(jù)文檔的大小和取回代價即下載所用時間等因素作有效地平衡;或現(xiàn)有的web緩存替換方法往往側重于某一性能矩陣,無法通過性能評估達到平衡的結果;現(xiàn)有的web緩存替換算法對于web請求流的特征存在一定程度的依賴,無法自適應外界參數(shù)的變化。
綜上所述,隨著網(wǎng)絡信息增長速度遠遠快于存儲速度的增長的情況下,目前所存在的web緩存管理方法只是在特定環(huán)境下具有較好的性能,應用在不同的環(huán)境中將有不同的表現(xiàn),目前并沒有在所有環(huán)境中都足夠好的web緩存管理方法。web緩存的管理方法根據(jù)web文檔更新速度快、動態(tài)頁面的流行等新需求還要進一步改進。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種緩存管理方法,使得能夠以多個隊列的方式進行分類緩存管理。
為了達到上述目的,本發(fā)明提供一種緩存管理方法,該方法包括獲取被請求的web文檔,更新web文檔的屬性,利用該web文檔的屬性對該web文檔進行分類;根據(jù)分類結果將該web文檔放置到相應的緩存隊列中后,調整該隊列中的對象。
所述調整該隊列中的對象的步驟包括按照最近最少使用LRU方法調整該隊列中的對象。
所述獲取被請求的web文檔的步驟包括從遠程web服務器中獲取web文檔;所述從遠程web服務器中獲取web文檔后,對該web文檔進行分類之前進一步包括判斷緩存中是否有足夠的空間存放該web文檔,如果是,則對該web文檔進行分類;否則,根據(jù)對象的取回代價、大小以及未來可能被訪問的概率計算每個隊列的最早被訪問過的對象的訪問權重,從緩存中依次刪除訪問權重最低的對象,直到緩存中有足夠的空間存放該web文檔,然后對該web文檔進行分類。
所述計算訪問權重的步驟包括獲取web文檔的取回代價、web文檔的大小以及web文檔未來可能被訪問的概率;計算所述web文檔的取回代價與web文檔的大小的商,用該商值乘以所述web文檔未來可能被訪問的概率得到計算訪問權重。
所述獲取web文檔未來可能被訪問的概率的步驟包括利用該web文檔的最近被訪問的記錄計算該web文檔未來可能被訪問的概率P,具體包括獲取web文檔的訪問頻率、web文檔最近被訪問的次數(shù)以及所述web文檔最近被訪問的時間間隔;當該web文檔最近被訪問的次數(shù)至少3次時,P的計算公式為,P=fN*(Σi=1L(12)λΔti);]]>
當該web文檔最近被訪問的次數(shù)少于3次時,P的計算公式為,P=fN,]]>其中,f為web文檔的訪問頻率,N為表示所有被訪問web文檔的總數(shù)的常數(shù),λ為可調節(jié)的常數(shù),Δt是web文檔被訪問的時間間隔,L為該web文檔最近被訪問的次數(shù)。
所述對web文檔進行分類的步驟包括根據(jù)該web文檔的大小、web文檔的取回代價、web文檔的訪問頻率計算該web文檔的分類權重后,根據(jù)分類權重對該web文檔分類。
所述計算分類權重的步驟包括獲取web文檔的大小、web文檔的取回代價以及web文檔的訪問頻率;利用如下公式計算得到所述分類權重sλ1fλ2×cλ3,]]>其中,s為web文檔的大小,c為web文檔的取回代價,f為web文檔的訪問頻率,λ1,λ2,λ3為可調節(jié)的常數(shù)。
所述根據(jù)分類結果將web文檔放置到相應的緩存隊列的步驟包括根據(jù)web文檔的分類權重計算隊列號,并將該web文檔放置到相應隊列號的緩存隊列中。
所述計算隊列號為對分類權重取以可調節(jié)的常數(shù)為底的對數(shù)后取下整數(shù),得到所述隊列號。
所述可調節(jié)的常數(shù)是通過周期性地利用歷史訪問數(shù)據(jù)進行學習調節(jié)得到。
所述更新的web文檔的屬性包括訪問時間、大小、取回代價、最后修改時間、過期時間、訪問次數(shù)、最近訪問歷史。
所述獲取web文檔的步驟包括根據(jù)所請求的web文檔,判斷該web文檔是否在緩存中,如果該web文檔不在緩存中,則直接從遠程web服務器中獲取被請求的web文檔;如果該web文檔在緩存中,則再判斷緩存中的該web文檔是否已過期,如果是,則刪除緩存中的該過期的web文檔,并從遠程web服務器中獲取被請求的web文檔;否則,從緩存中獲取該web文檔。
根據(jù)本發(fā)明提供的緩存管理方法,對每一個web文檔進行分類管理,對每一隊列又使用LRU方法進行調整,實現(xiàn)了多隊列的web緩存管理。對web文檔進行分類時根據(jù)對象的大小、取回代價、訪問頻率等屬性以及可調節(jié)的參數(shù)進行合理地分類,有效地對緩存作了平衡,又通過對每一隊列考慮時間特性進行調整,實現(xiàn)了有效的基于時間的引用。在訪問權重的計算過程中利用了web對象的取回代價、大小、未來可能被訪問的概率以及可調節(jié)的參數(shù),充分考慮了空間局限性和時間局限性。在分類權重和訪問權重的計算中不僅考慮了對象屬性,還使用了可調節(jié)的參數(shù),這些參數(shù)是可以通過周期性地利用歷史訪問數(shù)據(jù)進行學習調節(jié)的,因此,能夠通過參數(shù)的調節(jié)達到緩存管理中各種性能的平衡,也能夠通過調節(jié)參數(shù)適應各種應用環(huán)境,而且能夠根據(jù)外界參數(shù)的變化可以隨時調節(jié)其參數(shù)值。
圖1所示為現(xiàn)有技術中web緩存管理流程圖;圖2所示為本發(fā)明中web緩存管理流程圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面舉具體實施例,對本發(fā)明作進一步詳細的說明。
本發(fā)明提出的web緩存的管理方法是基于有限記憶的多最近最少使用算法(Latest Recently Used,LRU)隊列的web緩存管理方法,其主要思想是獲取被請求的web文檔后,對該web文檔進行分類,并根據(jù)分類結果將該web文檔放置到相應的隊列中后,調整該隊列中的對象。其中,對隊列的對象使用LRU進行調整。
下面結合圖2所示的web緩存的管理流程,詳細說明分類管理web文檔的過程。
步驟201用戶請求一個web文檔O。
步驟202判斷用戶請求的web文檔O是否在緩存中,如果是,則執(zhí)行步驟203;否則,執(zhí)行步驟205。
步驟203比較請求的web文檔O與緩存中的web文檔O的大小和最后刷新時間,判斷該緩存中的web文檔O是否已過期,如果已過期,則執(zhí)行步驟204;否則,執(zhí)行步驟208。
步驟204刪除緩存中該過期的web文檔O。
步驟205從遠程web服務器中獲取被請求的web文檔O,并返回給用戶。
步驟206比較該web文檔O的大小與緩存中剩余空間的大小,判斷緩存中是否有足夠的空間存放該web文檔O,如果沒有,則執(zhí)行步驟207;如果有,則執(zhí)行步驟209。
步驟207計算每個隊列的隊尾的對象的訪問權重,即計算每個隊列的最早被訪問過的對象的訪問權重,從緩存中依次刪除訪問權重最低的對象,直到緩存中有足夠的剩余空間來存放該web文檔O,然后執(zhí)行步驟209。
步驟208從緩存中獲取該web文檔O,并返回給用戶。
步驟209更新web文檔O的相關屬性,要更新的屬性包括該web文檔O的訪問時間、大小、取回代價、最后修改時間、過期時間、訪問次數(shù)、最近訪問歷史等,然后利用web文檔O的一些屬性計算分類權重后,根據(jù)分類權重分類該web文檔O,并將該web文檔O存放到相應的緩存隊列中后,對該隊列使用LRU的方式進行調整,結束本流程。
下面詳細介紹上述步驟207中根據(jù)訪問權重刪除歷史web文檔的方法和步驟209中根據(jù)分類權重重新分類web文檔的方法。
(一)根據(jù)分類權重重新分類web文檔的方法多隊列的web緩存管理,即分類管理web文檔的方法是主要考慮優(yōu)化時間復雜性而提出的方案。
web文檔是根據(jù)分類權重進行分類,分類權重的設計原則是,基于算法性能與文件命中率(HR)、字節(jié)命中率(BHR)以及延遲命中率(DSR)等多種評估標準設計分類權重的計算公式。在該公式中考慮最為重要的幾個特征,分別為與HR和BHR相關的web對象的大小,用s表示;與DSR相關的web對象的取回代價,用c表示;與HR相關的web對象的訪問頻率,用f表示。
在分類權重的公式中主要考慮了空間局限性的因素,而在分類之后使用LRU方法進行調整中考慮了對時間局限性的因素。
考慮以上特征,分類權重的計算公式為Vc=sλ1fλ2×cλ3]]>其中,λ1,λ2,λ3為可調節(jié)的參數(shù),這些參數(shù)的具體取值可通過周期性的歷史訪問數(shù)據(jù)進行學習確定,例如對最近一天或幾天的歷史數(shù)據(jù)利用遺傳算法等優(yōu)化算法對參數(shù)進行學習和優(yōu)化,根據(jù)具體應用環(huán)境的不同可以調節(jié)參數(shù)的具體值,使得該緩存管理算法能夠適應變化的環(huán)境。目前,結合多次實驗得出的取值范圍分別為λ1的取值范圍是0.8~2;λ2的取值范圍是1~8;λ3的取值范圍是0.1~1。根據(jù)實驗經(jīng)驗得出的默認值分別為λ1=1;λ2=5;λ3=0.25。
得出當前web文檔的分類權重之后,根據(jù)分類權重Vc值確認當前web文檔要放置的隊列號k,計算隊列號的主要目的是使得web對象依據(jù)分類權重合理地進行分類,隊列號k的計算公式為klogq(v)其中q為確定分類的邊界的常數(shù),q的取值范圍為1.1~20,默認值為q=1.5。公式中的為往下取整的算法,例如,logq(Vc)的計算結果為3.5,則k取3。
根據(jù)分類權重將web文檔分類至不同的隊列時,分類到第k的隊列的分類權重的取值邊界為pk~pk+1。
以上所述的分類管理中,對于每一個隊列的長度沒有特殊的要求,對于隊列的總個數(shù)可以設置隊列個數(shù)的最大值,例如可以設置web文檔最多能夠分成64個隊列。目前實驗表現(xiàn)隊列總數(shù)通常小于10個。
根據(jù)以上分類權重的計算公式和隊列號的計算公式,將所要存儲的web文檔放置到相應的隊列中,并對該隊列再使用LRU方法進行調整。
LRU是單隊列緩存的一種經(jīng)典算法。LRU算法中僅考慮web對象的訪問時間這一因素,具體方法是按照被訪問的時間順序進行調整,類似于“先進先出”。
如果隊列的隊頭表示最后被訪問的對象,而隊列的隊尾對象為最早被訪問的對象,這時,根據(jù)LRU方法進行調整的結果為分類到該隊列的web文檔直接插入到該隊列的隊頭,該隊列的其它對象的相對位置不改變。
(二)計算訪問權重的方法當web緩存已滿需要刪除緩存中對象時,對每個LRU隊尾的對象計算其訪問權重,訪問權重表示web對象再次被訪問的概率。訪問權重計算公式的設計中需要考慮空間局限性和時間局限性,該公式中需要考慮的最為重要的幾個特征分別為用來處理web的非統(tǒng)一對象,用c/s表示,其中c為web對象的取回代價,s為web對象的大?。粀eb對象未來可能訪問的概率,用P表示。
對于web對象未來可能被訪問的概率P還需要考慮空間局限性和時間局限性,包括以下兩個特征反映web空間局限性的參數(shù),用f/N表示,其中f為web對象被訪問的概率,N為表示所有被訪問web對象的總數(shù)的常量。算法實際應用時因為所有訪問權重都用到N,所以可將N設為任意值,如N=1;確定web對象概率的偏好,用F函數(shù)表示,F(xiàn)函數(shù)為F(x)=(12)λx,]]>其中λ為常數(shù),取值范圍為0.4~0.8,當λ小于0.5時偏向于web特征的空間局限性,當λ大于0.5時偏向于web特征的時間局限性。在本實施例中,λ的默認值設為0.5。
考慮以上特征,訪問權重的計算公式為Ve=cs*P]]>其中,P為web對象未來可能被訪問的概率,P的計算公式為P=fN*(Σi=1LF(Δti))]]>其中,Σi=1LF(Δti)]]>使用web對象訪問的歷史,F(xiàn)函數(shù)中Δt是web對象被訪問的時間間隔,其值為最近被訪問的時間減去上一次被訪問的時間,L是大于等于2的的常數(shù)。因此,在計算一web文檔未來可能被訪問的概率P的時候,該web文檔至少被訪問3次之后,P的計算公式采用P=fN*(Σi=1LF(Δti));]]>如果web文檔被訪問2次和1次時,P的計算公式是P=fN.]]>針對web緩存分類管理的方法,下面假設兩種情況,分別描述分類管理的結果。
假設1用戶請求web文檔O,由于緩存中不存在該web文檔O,從遠程web服務器中獲取web文檔O返回給用戶后,緩存需要保存該web文檔O時發(fā)現(xiàn)緩存中已沒有足夠的空間。
根據(jù)假設1,這時計算每個隊列的隊尾對象的訪問權重,計算結果第1隊列的隊尾對象web文檔A的訪問權重最低,第2隊列的隊尾對象web文檔B的訪問權重次低,因此,首先將web文檔A從緩存中刪除,如果這時緩存中還沒有足夠的空間存儲該web文檔O,則再刪除訪問權重次低的web文檔B,類似的依次刪除訪問權重次低的web文檔,直到緩存中有足夠的剩余空間來存放該web文檔O;更新該web文檔O的相關屬性,包括訪問時間、大小、取回代價、最后修改時間、過期時間、訪問次數(shù)、最近訪問歷史等,然后計算web文檔O的分類權重,根據(jù)分類權重計算出該web文檔O需要存放到隊列號為2的隊列,因此,將該web文檔O放置到第2隊列后,對該第2隊列使用LRU方法調整,最后結果為web文檔O被放置在第2隊列的對頭,第2隊列的其它對象的相對位置保持不變。
假設2用戶請求web文檔O,由于緩存中的第3隊列中存在該web文檔O且沒有過期,從緩存中獲取該web文檔O返回給用戶。
根據(jù)假設2,由于web文檔O是在緩存中的,因此只需要對該web文檔更改屬性后重新分類即可,具體步驟如下更新該web文檔O的相關屬性,包括訪問時間、大小、取回代價、最后修改時間、過期時間、訪問次數(shù)、最近訪問歷史等;然后重新計算該web文檔O的分類權重,根據(jù)分類權重計算出該web文檔O需要存放到隊列號為4的隊列,因此,將該web文檔O從第3隊列中取出并重新放置到第4隊列,然后對該第4隊列使用LRU方法調整,而第3隊列中取出web文檔O后其它對象的相對位置不變。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種緩存管理方法,其特征在于,該方法包括獲取被請求的web文檔,更新web文檔的屬性,利用該web文檔的屬性對該web文檔進行分類;根據(jù)分類結果將該web文檔放置到相應的緩存隊列中后,調整該隊列中的對象。
2.根據(jù)權利要求1所述的方法,其特征在于,所述調整該隊列中的對象的步驟包括按照最近最少使用算法LRU調整該隊列中的對象。
3.根據(jù)權利要求1所述的方法,其特征在于,所述獲取被請求的web文檔的步驟包括從遠程web服務器中獲取web文檔;所述從遠程web服務器中獲取web文檔后,對該web文檔進行分類之前進一步包括判斷緩存中是否有足夠的空間存放該web文檔,如果是,則對該web文檔進行分類;否則,根據(jù)對象的取回代價、大小以及未來可能被訪問的概率計算每個隊列的最早被訪問過的對象的訪問權重,從緩存中依次刪除訪問權重最低的對象,直到緩存中有足夠的空間存放該web文檔,然后對該web文檔進行分類。
4.根據(jù)權利要求3所述的方法,其特征在于,所述計算訪問權重的步驟包括獲取web文檔的取回代價、web文檔的大小以及web文檔未來可能被訪問的概率;計算所述web文檔的取回代價與web文檔的大小的商,用該商值乘以所述web文檔未來可能被訪問的概率得到計算訪問權重。
5.根據(jù)權利要求4所述的方法,其特征在于,所述獲取web文檔未來可能被訪問的概率的步驟包括利用該web文檔的最近被訪問的記錄計算該web文檔未來可能被訪問的概率P,具體包括獲取web文檔的訪問頻率、web文檔最近被訪問的次數(shù)以及所述web文檔最近被訪問的時間間隔;當該web文檔最近被訪問的次數(shù)至少3次時,P的計算公式為,P=fN*(Σi=1L(12)λΔti);]]>當該web文檔最近被訪問的次數(shù)少于3次時,P的計算公式為,P=fN,]]>其中,f為web文檔的訪問頻率,N為表示所有被訪問web文檔的總數(shù)的常數(shù),λ為可調節(jié)的常數(shù),Δt是web文檔被訪問的時間間隔,L為該web文檔最近被訪問的次數(shù)。
6.根據(jù)根據(jù)權利要求5所述的方法,其特征在于,所述可調節(jié)的常數(shù)是通過周期性地利用歷史訪問數(shù)據(jù)進行學習調節(jié)得到。
7.根據(jù)權利要求1至6任意一項所述的方法,其特征在于,所述對web文檔進行分類的步驟包括根據(jù)該web文檔的大小、web文檔的取回代價、web文檔的訪問頻率計算該web文檔的分類權重后,根據(jù)分類權重對該web文檔分類。
8.根據(jù)權利要求7所述的方法,其特征在于,所述計算分類權重的步驟包括獲取web文檔的大小、web文檔的取回代價以及web文檔的訪問頻率;利用如下公式計算得到所述分類權重sλ1fλ2×cλ3,]]>其中,s為web文檔的大小,c為web文檔的取回代價,f為web文檔的訪問頻率,λ1,λ2,λ3為可調節(jié)的常數(shù)。
9.根據(jù)權利要求8所述的方法,其特征在于,所述可調節(jié)的常數(shù)是通過周期性地利用歷史訪問數(shù)據(jù)進行學習調節(jié)得到。
10.根據(jù)權利要求8所述的方法,其特征在于,所述根據(jù)分類結果將web文檔放置到相應的緩存隊列的步驟包括根據(jù)web文檔的分類權重計算隊列號,并將該web文檔放置到相應隊列號的緩存隊列中。
11.根據(jù)權利要求10所述的方法,其特征在于,所述計算隊列號為對分類權重取以可調節(jié)的常數(shù)為底的對數(shù)后取下整數(shù),得到所述隊列號。
12.根據(jù)權利要求11所述的方法,其特征在于,所述可調節(jié)的常數(shù)是通過周期性地利用歷史訪問數(shù)據(jù)進行學習調節(jié)得到。
13.根據(jù)權利要求1所述的方法,其特征在于,所述更新的web文檔的屬性包括訪問時間、大小、取回代價、最后修改時間、過期時間、訪問次數(shù)、最近訪問歷史。
14.根據(jù)權利要求1、2或3所述的方法,其特征在于,所述獲取web文檔的步驟包括根據(jù)所請求的web文檔,判斷該web文檔是否在緩存中,如果該web文檔不在緩存中,則直接從遠程web服務器中獲取被請求的web文檔;如果該web文檔在緩存中,則再判斷緩存中的該web文檔是否已過期,如果是,則刪除緩存中的該過期的web文檔,并從遠程web服務器中獲取被請求的web文檔;否則,從緩存中獲取該web文檔。
全文摘要
本發(fā)明公開了一種緩存管理方法,該方法包括獲取被請求的web文檔,更新web文檔的屬性,利用該web文檔的屬性對該web文檔進行分類;根據(jù)分類結果將該web文檔放置到相應的緩存隊列中后,調整該隊列中的對象。如果從遠程web服務器中獲取web文檔且緩存中沒有足夠空間存放該web文檔時,根據(jù)計算訪問權重刪除歷史對象。分類時根據(jù)計算分類權重進行分類。根據(jù)本發(fā)明公開的方法,對每一個web文檔進行分類管理,對每一隊列又使用最近最少使用算法LRU進行調整,實現(xiàn)了多隊列的web緩存管理。計算訪問權重和分類權重時,使用了web文檔屬性和可調節(jié)的參數(shù),考慮了對緩存管理中各種性能的平衡。
文檔編號G06F17/30GK1869979SQ20051009712
公開日2006年11月29日 申請日期2005年12月30日 優(yōu)先權日2005年12月30日
發(fā)明者鄭浩然, 鈕俊清, 陳宇, 周昕宇, 胡永飛 申請人:華為技術有限公司