一種網(wǎng)絡(luò)緩存線性替換方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明具體涉及一種緩存替換方法,即在緩存容量已滿時對其進行合理的替換, 屬于信息存儲與緩存替換領(lǐng)域。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)信息量的告訴增長遠遠超過網(wǎng)絡(luò)速度的增長,韓向春,田玉根說現(xiàn)有的網(wǎng)絡(luò) 技術(shù)不能滿足用戶的需求,用戶往往要忍受較長的訪問延時,為了解決這一問題,提出了許 多方法,其中網(wǎng)絡(luò)緩存已經(jīng)成為解決這一問題的主要技術(shù)。目前的替換方法中,主要是按照 緩存文件的訪問頻率、內(nèi)存大小、訪問時間等因素在保證文件命中率與字節(jié)命中率的基礎(chǔ) 上來進行文件的替換,也有一些加入了預(yù)測機制。例如LFU、LRU、SIZE等方法。鈕俊清教授指 出,這些方法各有利弊,如LRU,它替換掉最近最少訪問的對象,具有較好的時間復(fù)雜度,但 沒有考慮訪問頻率等其他因素。LRU會在成緩存垃圾的出現(xiàn)。所以如何有效的將各方法的高 效因子進行結(jié)合,是提高緩存效率的有效方法。
[0003] 衡量一個緩存替換方法的指標(biāo),一般會采取文件命中率與字節(jié)命中率,同時還要 兼顧訪問延時。本方法主要是結(jié)合了 LFU方法與SIZE方法。韓向春在《基于預(yù)測的web緩存替 換算法》(信息化技術(shù)2010,31(1))指出LFU作為經(jīng)典的緩存替換方法,采用文檔的流行度作 為替換的依據(jù),保留那些經(jīng)常訪問的web文檔,其優(yōu)點是實現(xiàn)簡單,缺點是沒有考慮文件的 年齡、大小和獲取文件的訪問延遲。SIZE方法替換文件大小最大的對象,對于大小相同時, 通常選取訪問時間作為第二因素,但是忽略了頻率因素。張俊旺在他的碩士論文《Web緩存 替換策略與預(yù)取技術(shù)研究》中的實驗總結(jié)里說對于緩存而言,其主要過程為,當(dāng)Web緩存的 存儲空間都被占滿時,新來的對象就沒有足夠的空間來進行存儲,這就需要一種有效的替 換側(cè)率把當(dāng)前緩存中價值最小的對象替換出去。因此如何確定緩存對象的價值也成為方法 的關(guān)鍵因素。當(dāng)要進行替換時,會按照我所提出的方法,對緩存中的文件的價值按照時間頻 率與大小進行計算,替換掉最邊緣的。網(wǎng)站所接受的訪問請求是不確定的,但針對同一網(wǎng) 站,訪問請求的數(shù)據(jù)類型大體一致。由于數(shù)據(jù)的變動,在方法中加入不同的動態(tài)變量,這些 變量根據(jù)每一個文件的被訪問次數(shù)與大小等因素進行實時的更新。確定不同的參數(shù),可以 獲得不同的替換策略,做到命中率最大化。提高緩存效率,減少訪問延遲。
[0004] 傳統(tǒng)的緩存替換方法,作為現(xiàn)有緩存技術(shù)的基礎(chǔ)?,F(xiàn)今大多數(shù)的方法都是在經(jīng)典 方法上面的修改與結(jié)合。同時也有人認(rèn)為較為流行的也有加入Web緩存日志文件,用來更有 效額判斷緩存文件的價值。在針對不同的訪問對象,可以修改各關(guān)鍵因素的變量值。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的所要解決的技術(shù)問題是針對傳統(tǒng)緩存替換方法的不足。傳統(tǒng)的緩存替換 方法,在進行替換的過程依據(jù)比較單一,沒能綜合的考慮頻率、大小、訪問時間等因素,也沒 有考慮緩存文件的價值的計算,而過多的替換會增加訪問延時。所提出的網(wǎng)絡(luò)緩存線性替 換方法,在保證文件命中率與字節(jié)命中率的基礎(chǔ)上,結(jié)合了 LRU與SIZE方法,對每一個緩存 文件的價值進行判斷,通過實時的更新替換策略方程中的參數(shù),來獲得更優(yōu)秀的替換方法。 減少了替換的次數(shù),保留了最有價值的文件。本發(fā)明通過三層的遞推,得出最優(yōu)秀的緩存時 間點以及緩存公式中的參數(shù)。從最原始的替換方法、一次替換到多次替換,每一步都依據(jù)上 一步的論證結(jié)果。應(yīng)用中不但兼顧了各主要因素,同時做到了節(jié)省帶寬資源,在大數(shù)據(jù)的傳 輸過程中具有較高的作用。
[0006] 技術(shù)方案:
[0007] 步驟1),建立一個網(wǎng)站緩存模型,規(guī)定其緩存容量大小,并給出5個大小不同的文 件,編號為Pi(i = 1,2,…,5 ),作為所要被訪問的文件;
[0008] 步驟2),對步驟1)所建立的模型,發(fā)送大量的文件請求來請求這五個文件,并記錄 請求序列,發(fā)送的請求是隨機的。
[0009] 步驟3),當(dāng)用戶發(fā)送了大量請求之后,例如請求數(shù)據(jù)的總大小為緩存容量的η倍(η 遠大于1),這時所請求的數(shù)據(jù)就遠大于緩存的容量了。此時對所發(fā)送的每個數(shù)據(jù)請求的頻 率以及每個返還數(shù)據(jù)的大小進行分析記錄,合理的選取要保留在緩存中的文件,這作為第 一次替換,所選取的數(shù)據(jù)就放在緩存中。保留包含兩個要素,最大化文件命中率與不要超出 fr γ? 緩存容量范圍,Max XSiYiSS。其中Yi為0表示該文件不保存在緩存中,為1表 示保存在緩存中,S為緩存的大小。在此之前,緩存的替換是隨機替換。本步驟主要是對下面 的替換提供依據(jù)。
[0010] 步驟4),由于η的數(shù)量過大,會造成很高的訪問延遲,過低會導(dǎo)致緩存的頻繁讀寫, 不利于性能。所以要選取合理的η。按照步驟3)的思路,進行第二步,繼續(xù)發(fā)送請求數(shù)據(jù),但 是在發(fā)送的請求容量為緩存容量η/2倍時進行第一次緩存替換,相當(dāng)于提前進入緩存。替換 按照步驟3)的規(guī)則,既要保證最大化文件命中率,也要保證不超出緩存容量。第一次替換結(jié) 束后緩存中文件為Yu,用〇和1表示,〇表示不在,1表示在。再發(fā)送η/2的數(shù)據(jù)請求發(fā)送完成 后,再對這η/2的數(shù)據(jù)進行分析,計算文件命中率,再替換一次,此時緩存中文件為Y 2i用0和1 表示。將兩次的緩存結(jié)果進行對比,獲取最終的緩存方案。這里將LFU與SIZE方法結(jié)合起來, 來選定參數(shù),公式為+ 注意,在計算時只需選取Yli為1的,以及所 Si 對應(yīng)的的γ2ι。因為這樣可以更好的驗證那些被替換掉了的數(shù)據(jù)。這里面其中C、W1、W2為參 數(shù)。在接下來的請求中緩根據(jù)公式G = C + wFk +,計算每一個請求數(shù)據(jù)的值,選取最 小的進行替換,直到下一次參數(shù)更新。
[0011] 步驟5),完成第三步,進行進一步的優(yōu)化,選取的替換節(jié)點為n/m倍。即每發(fā)送數(shù) 據(jù)的總量為n/m(n/m>l)后就更新一次緩存,此時所請求的數(shù)據(jù)的總的容量要大于緩存的容 量。每一個斷點都先根據(jù)訪問請求計算一下緩存中保留的數(shù)據(jù),再根據(jù)上一段的保留數(shù)據(jù) 按照步驟4)替換一次,得出相應(yīng)的替換公式。在接下來的一段里按照該公式進行替換。總體 而言,每兩段之間的替換按照步驟4)中方法。通過所發(fā)送的請求數(shù)據(jù),求出各參數(shù),公式為: = 0 +儀Σ矜+勒并將等式右邊的公式作為接下來的替換公式。 hi
[0012] 步驟6),重復(fù)步驟5)進行更細(xì)致的劃分。
[0013] 步驟7),分別計算并記錄每一次更換時間節(jié)點后,在下一段時間段內(nèi)的字節(jié)命中 率、文件命中率與訪問延遲時間,作對比。
[0014] 步驟8),對每一次的文件命中率等進行畫圖,選取文件命中率最高的對應(yīng)的倍數(shù) 值作為以后開始執(zhí)行緩存的時間。
[0015]進一步的,本發(fā)明的網(wǎng)絡(luò)緩存線性替換方法,結(jié)合了傳統(tǒng)的LRU與SIZE方法,步驟 4)在確定替換公式時,加入了頻率與文件大小兩個因素,同時加入調(diào)節(jié)參數(shù),來進行調(diào)節(jié)。
[0016] 進一步的,本發(fā)明的網(wǎng)絡(luò)緩存線性替換方法,步驟8)對于步驟5)得到的替換方法 的應(yīng)用:同時由于訪問用戶的不同等外在因素,每一序列訪問請求發(fā)送完成后,都會進行重 新的參數(shù)計算。
[0017] 有益效果
[0018] 本發(fā)明針對傳統(tǒng)的緩存替換方法替換時依據(jù)的元素單一進行改進,理想的線性網(wǎng) 絡(luò)緩存替換方法,能夠在緩存中保存使用價值最高的文件,方便請求用戶較快、較準(zhǔn)的查詢 到所請求的對象。該方法首先根據(jù)傳統(tǒng)的替換方法的公式,選取其主要參數(shù),進行結(jié)合,其 次在新方法中添加了調(diào)節(jié)因數(shù),用于針對請求的更新獲取新的替換方法。在最大化字節(jié)與 文件命中率的同時,減少了訪問延遲,