基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及磁盤存儲技術(shù),尤其涉及一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法及系統(tǒng)。
【背景技術(shù)】
[0002]通過最近最少使用LRU (Least Recently Used)算法選取需要回寫的緩存塊,因?yàn)樵诰彺孀銐虼蟮那闆r下,最近最少使用的緩存數(shù)據(jù)塊就是熱度最低的數(shù)據(jù)。這種方式在執(zhí)行順序?qū)懙臅r候具有很好的效果,因?yàn)樽钤鐚懭氲臄?shù)據(jù)不會再次被寫入,熱度最低,并且其數(shù)據(jù)的連續(xù)性即數(shù)據(jù)密度一定是最高的。
[0003]在隨機(jī)寫并且有較多部分命中緩存情況下(例如隨機(jī)區(qū)間為10GB,而緩存大小為5GB),LRU算法存在如下問題:⑴由于數(shù)據(jù)十分隨機(jī),所有數(shù)據(jù)的平均熱度都非常低,這時選擇的回寫數(shù)據(jù)與隨機(jī)選擇回寫數(shù)據(jù)沒有區(qū)別,退化為隨機(jī)算法;(2)數(shù)據(jù)密度沒有保證,而數(shù)據(jù)密度較高的緩沖塊回寫的速度要顯著大于數(shù)據(jù)密度低的緩沖塊。
【發(fā)明內(nèi)容】
[0004]基于上述問題,本發(fā)明提供一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法及系統(tǒng),可以在隨機(jī)寫命中率居中的情況下具有較大的cache回寫效率。
[0005]根據(jù)上述目的,本發(fā)明提供了一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法,其特征在于,所述方法包括:
[0006]S1、為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的最近最少使用LRU鏈表數(shù)組;
[0007]S2、計算所述緩存的每個緩存塊的數(shù)據(jù)密度;
[0008]S3、按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中;
[0009]S4、在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。
[0010]其中,所述數(shù)據(jù)密度的計算公式如下:
[0011]數(shù)據(jù)密度=緩存塊有效數(shù)據(jù)量*n/緩存塊最大承載數(shù)據(jù)量,
[0012]其中,數(shù)據(jù)密度的取值范圍為[O?η]。
[0013]其中,所述步驟S4還包括:
[0014]當(dāng)順序遍歷所述LRU鏈表數(shù)組時,則使用LRU算法選擇回寫的緩沖塊。
[0015]本發(fā)明的另一個方面,提供一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫系統(tǒng),其特征在于,所述系統(tǒng)包括:
[0016]LRU鏈表數(shù)組初始化單元,用于為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的LRU鏈表數(shù)組;
[0017],用于為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的LRU鏈表數(shù)組;
[0018]數(shù)據(jù)密度計算單元,用于計算所述緩存的每個緩存塊的數(shù)據(jù)密度;
[0019]緩存塊鏈接單元,用于按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中;
[0020]回寫單元,用于在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。
[0021]本發(fā)明的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法及系統(tǒng),通過計算每個緩沖塊的數(shù)據(jù)密度,優(yōu)先對數(shù)據(jù)密度較高的緩存塊進(jìn)行回寫,從而可以在隨機(jī)寫命中率居中的情況下提高緩存回寫效率。
【附圖說明】
[0022]通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對本發(fā)明進(jìn)行任何限制,在附圖中:
[0023]圖1示出了本發(fā)明的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法的流程圖。
[0024]圖2示出了本發(fā)明的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0025]下面將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述。
[0026]圖1示出了本發(fā)明的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法的流程圖。
[0027]本發(fā)明提供了一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫算法,所述方法包括:
[0028]S1、為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的LRU鏈表數(shù)組;
[0029]S2、計算所述緩存的每個緩存塊的數(shù)據(jù)密度;
[0030]數(shù)據(jù)密度的計算公式如下:
[0031]數(shù)據(jù)密度=緩存塊有效數(shù)據(jù)量*n/緩存塊最大承載數(shù)據(jù)量,
[0032]其中,數(shù)據(jù)密度的取值范圍為[O?η]。
[0033]S3、按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中;如將數(shù)據(jù)密度順序排列的第m個緩沖塊鏈接到數(shù)組下標(biāo)為m的LRU鏈表中。
[0034]S4、在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。
[0035]在本實(shí)施例中,由于在同一個LRU鏈表中的緩沖塊數(shù)據(jù)密度一致,并已經(jīng)按照LRU算法排序,所以當(dāng)順序遍歷所述LRU鏈表數(shù)組時,則使用LRU算法選擇回寫的緩沖塊。
[0036]圖2示出了本發(fā)明的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫系統(tǒng)的結(jié)構(gòu)框圖。
[0037]參照圖2,本發(fā)明的另一個方面,提供一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫系統(tǒng),該系統(tǒng)包括:
[0038]LRU鏈表數(shù)組初始化單元10,用于為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的LRU鏈表數(shù)組;
[0039]數(shù)據(jù)密度計算單元20,用于計算所述緩存的每個緩存塊的數(shù)據(jù)密度;
[0040]緩存塊鏈接單元30,用于按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中;
[0041 ] 回寫單元40,用于在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。
[0042]本發(fā)明的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法及系統(tǒng),通過優(yōu)先對數(shù)據(jù)密度較高的緩沖塊進(jìn)行回寫,從而在緩存塊50%命中的情況下,提升隨機(jī)寫的10PS(Input/Output Operat1ns Per Second)約20%,與此同時,對于順序?qū)懙男阅軟]有影響。另外,對于同一個LRU鏈表中的緩存塊數(shù)據(jù)密度一致的情況,則使用LRU算法,從而可以在隨機(jī)寫命中率居中的情況下提尚緩存回與效率。
[0043]雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。
【主權(quán)項】
1.一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法,其特征在于,所述方法包括: 51、為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的最近最少使用LRU鏈表數(shù)組; 52、計算所述緩存的每個緩存塊的數(shù)據(jù)密度; 53、按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中; 54、在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。2.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法,其特征在于,所述數(shù)據(jù)密度的計算公式如下: 數(shù)據(jù)密度=緩存塊有效數(shù)據(jù)量*n/緩存塊最大承載數(shù)據(jù)量, 其中,數(shù)據(jù)密度的取值范圍為[O?η]。3.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法,其特征在于,所述步驟S4還包括: 當(dāng)順序遍歷所述LRU鏈表數(shù)組時,則使用LRU算法選擇回寫的緩沖塊。4.一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫系統(tǒng),其特征在于,所述系統(tǒng)包括: LRU鏈表數(shù)組初始化單元,用于為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的LRU鏈表數(shù)組; 數(shù)據(jù)密度計算單元,用于計算所述緩存的每個緩存塊的數(shù)據(jù)密度; 緩存塊鏈接單元,用于按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中; 回寫單元,用于在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。
【專利摘要】本發(fā)明涉及一種基于數(shù)據(jù)熱度及數(shù)據(jù)密度的緩存回寫方法及系統(tǒng),所述方法包括:S1、為磁盤陣列組的每個緩存創(chuàng)建具有n+1個元素的最近最少使用LRU鏈表數(shù)組;S2、計算所述緩存的每個緩存塊的數(shù)據(jù)密度;S3、按照所述數(shù)據(jù)密度將所述緩存塊鏈接到對應(yīng)數(shù)組下標(biāo)的LRU鏈表中;S4、在選擇要回寫的緩存塊時,倒序遍歷LRU鏈表數(shù)組,選取數(shù)據(jù)密度最高的緩存塊進(jìn)行回寫。通過該方法,可以在隨機(jī)寫命中率居中的情況下具有較大的緩存回寫效率。
【IPC分類】G06F3/06
【公開號】CN105117174
【申請?zhí)枴緾N201510549350
【發(fā)明人】李浩然
【申請人】北京神州云科數(shù)據(jù)技術(shù)有限公司
【公開日】2015年12月2日
【申請日】2015年8月31日