專利名稱:一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種磁盤陣列的數(shù)據(jù)緩存管理技術(shù),具體地說是一種基于長短 周期訪問頻度的緩存數(shù)據(jù)替換方法。
背景技術(shù):
通常在磁盤陣列內(nèi)部,為提高系統(tǒng)的訪問效率, 一般將預(yù)留一段內(nèi)存區(qū)域 用作數(shù)據(jù)緩存。數(shù)據(jù)緩存分為讀數(shù)據(jù)緩存與寫數(shù)據(jù)緩存兩種,讀數(shù)據(jù)緩存主要 為提高隨機(jī)讀的效率,而寫數(shù)據(jù)緩存則主要為提高連續(xù)寫的效率。數(shù)據(jù)緩存是 磁盤陣列的重要資源,緩存命中率是影響磁盤陣列性能的重要指標(biāo),利用高效 的緩存數(shù)據(jù)替換技術(shù),可極大的優(yōu)化緩存空間的利用率,提高緩存命中率,提 高磁盤陣列的整體性能。
緩存替換技術(shù)必須以最大化主機(jī)端訪問時(shí)的緩存命中率為出發(fā)點(diǎn),因而需 要考慮主機(jī)端的緩存數(shù)據(jù)訪問方式。主機(jī)端對(duì)緩存數(shù)據(jù)主要有兩種訪問方式-長期周期訪問和短期頻繁訪問。長期周期訪問是指,緩存數(shù)據(jù)在間隔較長的時(shí) 間內(nèi)被周期性的重復(fù)訪問,典型的應(yīng)用包括日志、定時(shí)備份等。短期頻繁訪問 是指,緩存數(shù)據(jù)在較短的時(shí)間內(nèi)被頻繁訪問。為最大化主機(jī)端訪問緩存的命中 率,緩存中應(yīng)盡量保存短期頻繁被訪問的數(shù)據(jù),但是如果短期頻繁被訪問的數(shù) 據(jù)在一段較長的時(shí)間內(nèi)未被訪問,那么它們也應(yīng)該先于長期周期性訪問的數(shù)據(jù) 而被替換出緩存。這是因?yàn)?,就訪問方式而言,短期頻繁訪問的數(shù)據(jù),在今后 較長的時(shí)間內(nèi)很少會(huì)被再次訪問,而長期周期訪問的數(shù)據(jù),在今后較長的時(shí)間 內(nèi)將會(huì)被周期性的訪問。
如何能夠提供一種緩存數(shù)據(jù)替換技術(shù),充分考慮到主機(jī)端的訪問方式,兼 顧長期周期訪問和短期頻繁訪問的情況,是磁盤陣列緩存管理所面臨的主要問 題之一。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是提供一種通過兼顧主機(jī)端的長短期訪問,優(yōu)化緩存數(shù) 據(jù)替換的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法。
本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,利用緩存數(shù)據(jù)訪問頻度值,反映 緩存數(shù)據(jù)在長短周期內(nèi)被訪問的情況,并按照緩存數(shù)據(jù)訪問頻度值的大小進(jìn)行 排序,査找最久未被使用的緩存數(shù)據(jù),將該緩存數(shù)據(jù)替換出緩存區(qū),并將新數(shù)
據(jù)換入緩存區(qū);結(jié)構(gòu)包括緩存區(qū)、緩存替換接口模塊、緩存訪問頻度統(tǒng)計(jì)模塊、 緩存訪問頻度排序模塊、緩存訪問頻度值記錄模塊和緩存替換處理模塊;緩存 區(qū)連接緩存替換接口模塊和緩存訪問頻度統(tǒng)計(jì)模塊,緩存替換接口模塊連接緩 存替換處理模塊,緩存替換處理模塊連接緩存訪問頻度排序模塊,緩存訪問頻 度統(tǒng)計(jì)模塊和緩存訪問頻度排序模塊均與緩存訪問頻度值記錄模塊連接。
緩存訪問頻度值記錄模塊以記錄的形式存儲(chǔ)數(shù)據(jù)訪問頻度值,提供對(duì)緩存 數(shù)據(jù)訪問頻度值的查找、更新和替換接口;緩存訪問頻度統(tǒng)計(jì)模塊主要負(fù)責(zé)計(jì) 算緩存區(qū)內(nèi)緩存數(shù)據(jù)的訪問頻度值,并且周期性的更新緩存訪問頻度值記錄模 塊內(nèi)的緩存數(shù)據(jù)的訪問頻度值;緩存訪問頻度排序模塊可調(diào)用緩存訪問頻度記 錄模塊內(nèi)的緩存數(shù)據(jù)的訪問頻度值,并按照訪問頻度值進(jìn)行排序;緩存替換處 理模塊負(fù)責(zé)對(duì)緩存數(shù)據(jù)進(jìn)行替換,調(diào)用緩存訪問頻度排序模塊査找訪問頻度值 最小的緩存數(shù)據(jù),通過緩存替換接口模塊將該緩存數(shù)據(jù)替換出緩存區(qū),并將新 數(shù)據(jù)換入緩存區(qū)。
緩存數(shù)據(jù)替換流程為兩條,其中一條的具體流程為
(1) 、緩存訪問頻度統(tǒng)計(jì)模塊訪問緩存區(qū)的緩存數(shù)據(jù),并且計(jì)算緩存區(qū)內(nèi) 緩存數(shù)據(jù)的訪問頻度值;
(2) 、緩存訪問頻度統(tǒng)計(jì)模塊周期性的更新緩存訪問頻度值記錄模塊內(nèi)的 緩存數(shù)據(jù)的訪問頻度值;
(3) 、當(dāng)主機(jī)端訪問緩存區(qū)內(nèi)的緩存數(shù)據(jù)時(shí),緩存訪問頻度統(tǒng)計(jì)模塊重新 計(jì)算緩存數(shù)據(jù)的訪問頻度值;
另一條的具體流程為(1)、緩存替換處理模塊通過調(diào)用緩存替換接口模塊提供的接口,向系統(tǒng)
內(nèi)部發(fā)出緩存數(shù)據(jù)替換請求;
(2 )、緩存訪問頻度排序模塊調(diào)用緩存訪問頻度記錄模塊內(nèi)的緩存數(shù)據(jù)的 訪問頻度值,并按照訪問頻度值進(jìn)行排序;
(3) 、緩存替換處理模塊進(jìn)行緩存數(shù)據(jù)替換處理,調(diào)用緩存訪問頻度排序 模塊對(duì)訪問頻度值的排序,査找訪問頻度值最小的緩存數(shù)據(jù);
(4) 、緩存替換處理模塊通過緩存替換接口模塊將訪問頻度值最小的緩存 數(shù)據(jù)替換出緩存區(qū),并將新數(shù)據(jù)換入緩存區(qū)。
緩存數(shù)據(jù)的訪問頻度值的大小為4個(gè)字節(jié),由高到低的每個(gè)字節(jié),代表了 間隔由短到長的周期內(nèi)緩存數(shù)據(jù)被訪問的情況;用Bn[i]表示由高到低的第n 個(gè)字節(jié)的第i位的取值,若在單位時(shí)間內(nèi),緩存數(shù)據(jù)塊被訪問,則置B。
為1, 否則置B。
為0;每隔8&個(gè)單位時(shí)間,采用如下規(guī)則更新緩存數(shù)據(jù)訪問頻度 值
(1) 、 Ba[i+l]二Ba[i] (i=0,l,......,6)
(2) 、 Ba+1[i+l]=Ba+1[i] (i=0, 1,......,6)
(3) 、 Ba+1
=Ba
II Ba[l] II ...... II Ba[6] || Ba[7];
上述規(guī)則可以保證,若主機(jī)端訪問方式為長期周期訪問,那么低位字節(jié)中
將有多位連續(xù)為l,若訪問訪問為短期頻繁訪問,那么高位字節(jié)中將有多位連 續(xù)為l,而低位字節(jié)很少會(huì)出現(xiàn)多位連續(xù)為1的情況。
本發(fā)明的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法,通常用于磁盤
陣列的數(shù)據(jù)緩存管理,具有以下優(yōu)點(diǎn)
(1)、充分考慮了主機(jī)端對(duì)緩存數(shù)據(jù)的訪問方式,兼顧了長期周期訪問和 短期頻繁訪問;可以有效的優(yōu)化緩存空間的利用率,提高緩存數(shù)據(jù)的命中率,
提高磁盤陣列的整體性能。
(2)、使其應(yīng)用在磁盤陣列系統(tǒng)中,優(yōu)化緩存數(shù)據(jù)的替換策略,能夠充分 利用緩存資源,降低系統(tǒng)的運(yùn)行開銷,滿足對(duì)磁盤陣列性能日益提高的要求。
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明。
附圖1為一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法的結(jié)構(gòu)框圖; 附圖2為一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法的流程圖; 附圖3為一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法的緩存數(shù)據(jù)的訪
問頻度值示例。
具體實(shí)施例方式
參照說明書附圖和具體實(shí)施例對(duì)本發(fā)明的一種基于長短周期訪問頻度的 緩存數(shù)據(jù)替換方法作以下詳細(xì)地說明。 實(shí)施例
如圖l所示,本發(fā)明的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法, 其結(jié)構(gòu)包括利用緩存數(shù)據(jù)訪問頻度值,反映緩存數(shù)據(jù)在長短周期內(nèi)被訪問的情 況,并按照緩存數(shù)據(jù)訪問頻度值的大小進(jìn)行排序,査找最久未被使用的緩存數(shù) 據(jù),將該緩存數(shù)據(jù)替換出緩存區(qū),并將新數(shù)據(jù)換入緩存區(qū);結(jié)構(gòu)包括緩存區(qū)、
緩存替換接口模塊、緩存訪問頻度統(tǒng)計(jì)模塊、緩存訪問頻度排序模塊、緩存訪
問頻度值記錄模塊和緩存替換處理模塊;緩存區(qū)連接緩存替換接口模塊和緩存 訪問頻度統(tǒng)計(jì)模塊,緩存替換接口模塊連接緩存替換處理模塊,緩存替換處理 模塊連接緩存訪問頻度排序模塊,緩存訪問頻度統(tǒng)計(jì)模塊和緩存訪問頻度排序 模塊均與緩存訪問頻度值記錄模塊連接。
緩存訪問頻度值記錄模塊以記錄的形式存儲(chǔ)數(shù)據(jù)訪問頻度值,提供對(duì)緩存 數(shù)據(jù)訪問頻度值的査找、更新和替換接口;緩存訪問頻度統(tǒng)計(jì)模塊主要負(fù)責(zé)計(jì) 算緩存區(qū)內(nèi)緩存數(shù)據(jù)的訪問頻度值,并且周期性的更新緩存訪問頻度值記錄模 塊內(nèi)的緩存數(shù)據(jù)的訪問頻度值;緩存訪問頻度排序模塊可調(diào)用緩存訪問頻度記 錄模塊內(nèi)的緩存數(shù)據(jù)的訪問頻度值,并按照訪問頻度值進(jìn)行排序;緩存替換處 理模塊負(fù)責(zé)對(duì)緩存數(shù)據(jù)進(jìn)行替換,調(diào)用緩存訪問頻度排序模塊査找訪問頻度值 最小的緩存數(shù)據(jù),通過緩存替換接口模塊將該緩存數(shù)據(jù)替換出緩存區(qū),并將新 數(shù)據(jù)換入緩存區(qū)。
如圖2.所示,緩存數(shù)據(jù)替換流程為兩條,其中一條的具體流程為-(1) 、緩存訪問頻度統(tǒng)計(jì)模塊訪問緩存區(qū)的緩存數(shù)據(jù),并且計(jì)算緩存區(qū)內(nèi)
緩存數(shù)據(jù)的訪問頻度值;
(2) 、緩存訪問頻度統(tǒng)計(jì)模塊周期性的更新緩存訪問頻度值記錄模塊內(nèi)的 緩存數(shù)據(jù)的訪問頻度值;
(3) 、當(dāng)主機(jī)端訪問緩存區(qū)內(nèi)的緩存數(shù)據(jù)時(shí),緩存訪問頻度統(tǒng)計(jì)模塊重新 計(jì)算緩存數(shù)據(jù)的訪問頻度值;
另一條的具體流程為
(1) 、緩存替換處理模塊通過調(diào)用緩存替換接口模塊提供的接口,向系統(tǒng) 內(nèi)部發(fā)出緩存數(shù)據(jù)替換請求;
(2) 、緩存訪問頻度排序模塊調(diào)用緩存訪問頻度記錄模塊內(nèi)的緩存數(shù)據(jù)的 訪問頻度值,并按照訪問頻度值進(jìn)行排序;
(3) 、緩存替換處理模塊進(jìn)行緩存數(shù)據(jù)替換處理,調(diào)用緩存訪問頻度排序 模塊對(duì)訪問頻度值的排序,查找訪問頻度值最小的緩存數(shù)據(jù);
(4) 、緩存替換處理模塊通過緩存替換接口模塊將訪問頻度值最小的緩存 數(shù)據(jù)替換出緩存區(qū),并將新數(shù)據(jù)換入緩存區(qū)。
如圖3所示,緩存數(shù)據(jù)的訪問頻度值的大小為4個(gè)字節(jié),由高到低的每個(gè) 字節(jié),代表了間隔由短到長的周期內(nèi)緩存數(shù)據(jù)被訪問的情況;用Bji]表示由 高到低的第n個(gè)字節(jié)的第i位的取值,若在單位時(shí)間內(nèi),緩存數(shù)據(jù)塊被訪問, 則置B。
為1,否則置B。
為0;每隔8a個(gè)單位時(shí)間,采用如下規(guī)則更新緩 存數(shù)據(jù)訪問頻度值-
(1) 、 Ba[i + l]二Ba[i] (i:O,l,,6)
(2) 、 Ba+1[i+l]=Ba+1[i] (i=0,l,......,6)
(3) 、 Ba+1
=Ba
II Ba[l] II ...... II Ba[6] || Ba[7];
上述規(guī)則可以保證,若主機(jī)端訪問方式為長期周期訪問,那么低位字節(jié)中
將有多位連續(xù)為l,若訪問訪問為短期頻繁訪問,那么高位字節(jié)中將有多位連 續(xù)為1,而低位字節(jié)很少會(huì)出現(xiàn)多位連續(xù)為1的情況。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1、一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法,其特征在于利用緩存數(shù)據(jù)訪問頻度值,反映緩存數(shù)據(jù)在長短周期內(nèi)被訪問的情況,并按照緩存數(shù)據(jù)訪問頻度值的大小進(jìn)行排序,查找最久未被使用的緩存數(shù)據(jù),將該緩存數(shù)據(jù)替換出緩存區(qū),并將新數(shù)據(jù)換入緩存區(qū);結(jié)構(gòu)包括緩存區(qū)、緩存替換接口模塊、緩存訪問頻度統(tǒng)計(jì)模塊、緩存訪問頻度排序模塊、緩存訪問頻度值記錄模塊和緩存替換處理模塊;緩存區(qū)連接緩存替換接口模塊和緩存訪問頻度統(tǒng)計(jì)模塊,緩存替換接口模塊連接緩存替換處理模塊,緩存替換處理模塊連接緩存訪問頻度排序模塊,緩存訪問頻度統(tǒng)計(jì)模塊和緩存訪問頻度排序模塊均與緩存訪問頻度值記錄模塊連接。
2 、根據(jù)權(quán)利要求1所述的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方 法,其特征在于緩存訪問頻度值記錄模塊以記錄的形式存儲(chǔ)數(shù)據(jù)訪問頻度值, 提供對(duì)緩存數(shù)據(jù)訪問頻度值的査找、更新和替換接口;緩存訪問頻度統(tǒng)計(jì)模塊 主要負(fù)責(zé)計(jì)算緩存區(qū)內(nèi)緩存數(shù)據(jù)的訪問頻度值,并且周期性的更新緩存訪問頻 度值記錄模塊內(nèi)的緩存數(shù)據(jù)的訪問頻度值;緩存訪問頻度排序模塊可調(diào)用緩存 訪問頻度記錄模塊內(nèi)的緩存數(shù)據(jù)的訪問頻度值,并按照訪問頻度值進(jìn)行排序; 緩存替換處理模塊負(fù)責(zé)對(duì)緩存數(shù)據(jù)進(jìn)行替換,調(diào)用緩存訪問頻度排序模塊査找 訪問頻度值最小的緩存數(shù)據(jù),通過緩存替換接口模塊將該緩存數(shù)據(jù)替換出緩存 區(qū),并將新數(shù)據(jù)換入緩存區(qū)。
3 、根據(jù)權(quán)利要求1所述的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方 法,其特征在于緩存數(shù)據(jù)替換流程為兩條,其中一條的具體流程為-(1) 、緩存訪問頻度統(tǒng)計(jì)模塊訪問緩存區(qū)的緩存數(shù)據(jù),并且計(jì)算緩存區(qū)內(nèi) 緩存數(shù)據(jù)的訪問頻度值;(2) 、緩存訪問頻度統(tǒng)計(jì)模塊周期性的更新緩存訪問頻度值記錄模塊內(nèi)的 緩存數(shù)據(jù)的訪問頻度值;(3)、當(dāng)主機(jī)端訪問緩存區(qū)內(nèi)的緩存數(shù)據(jù)時(shí),緩存訪問頻度統(tǒng)計(jì)模塊重新 計(jì)算緩存數(shù)據(jù)的訪問頻度值; 另一條的具體流程為(1) 、緩存替換處理模塊通過調(diào)用緩存替換接口模塊提供的接口,向系統(tǒng)內(nèi)部發(fā)出緩存數(shù)據(jù)替換請求;(2) 、緩存訪問頻度排序模塊調(diào)用緩存訪問頻度記錄模塊內(nèi)的緩存數(shù)據(jù)的 訪問頻度值,并按照訪問頻度值進(jìn)行排序;(3) 、緩存替換處理模塊進(jìn)行緩存數(shù)據(jù)替換處理,調(diào)用緩存訪問頻度排序 模塊對(duì)訪問頻度值的排序,查找訪問頻度值最小的緩存數(shù)據(jù);(4) 、緩存替換處理模塊通過緩存替換接口模塊將訪問頻度值最小的緩存 數(shù)據(jù)替換出緩存區(qū),并將新數(shù)據(jù)換入緩存區(qū)。
4 、根據(jù)權(quán)利要求1所述的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方 法,其特征在于緩存數(shù)據(jù)的訪問頻度值的大小為4個(gè)字節(jié),由高到低的每個(gè)字 節(jié),代表了間隔由短到長的周期內(nèi)緩存數(shù)據(jù)被訪問的情況;用Bn[i]表示由高 到低的第n個(gè)字節(jié)的第i位的取值,若在單位時(shí)間內(nèi),緩存數(shù)據(jù)塊被訪問,則 置B。
為1,否則置B。
為0;每隔8a個(gè)單位時(shí)間,采用如下規(guī)則更新緩存 數(shù)據(jù)訪問頻度值(1) 、 Ba[i+l]=Ba[i] (i=0,l,......,6)(2) 、 Ba+1[i+l]=Ba+1[i] (i=0,l,......,6)(3) 、 Ba+1
=Ba
II Ba[l] II……II Ba[6] || Ba[7];. 上述規(guī)則可以保證,若主機(jī)端訪問方式為長期周期訪問,那么低位字節(jié)中將有 多位連續(xù)為l,若訪問訪問為短期頻繁訪問,那么高位字節(jié)中將有多位連續(xù)為 1,而低位字節(jié)很少會(huì)出現(xiàn)多位連續(xù)為1的情況。
全文摘要
本發(fā)明公開了一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法,屬于一種磁盤陣列的數(shù)據(jù)緩存管理技術(shù),利用緩存數(shù)據(jù)訪問頻度值,反映緩存數(shù)據(jù)在長短周期內(nèi)被訪問的情況,并按照緩存數(shù)據(jù)訪問頻度值的大小進(jìn)行排序,查找最久未被使用的緩存數(shù)據(jù),將該緩存數(shù)據(jù)替換出緩存區(qū),并將新數(shù)據(jù)換入緩存區(qū);結(jié)構(gòu)包括緩存區(qū)、緩存替換接口模塊、緩存訪問頻度統(tǒng)計(jì)模塊、緩存訪問頻度排序模塊、緩存訪問頻度值記錄模塊和緩存替換處理模塊;本發(fā)明的一種基于長短周期訪問頻度的緩存數(shù)據(jù)替換方法和現(xiàn)有技術(shù)相比,通常用于磁盤陣列的數(shù)據(jù)緩存管理,優(yōu)化緩存數(shù)據(jù)替換,充分利用系統(tǒng)緩存資源,優(yōu)化緩存空間利用率,提高緩存的命中率,進(jìn)而提高磁盤陣列整體性能。
文檔編號(hào)G06F12/12GK101576856SQ20091001636
公開日2009年11月11日 申請日期2009年6月18日 優(yōu)先權(quán)日2009年6月18日
發(fā)明者王文方 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司