欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制的制作方法

文檔序號(hào):12786291閱讀:1734來(lái)源:國(guó)知局
一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制的制作方法與工藝

本發(fā)明涉及一種緩存機(jī)制,特別是一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制。



背景技術(shù):

實(shí)時(shí)數(shù)據(jù)庫(kù)其底層文件頁(yè)淘汰算法依賴于程序局部性原理以及實(shí)時(shí)數(shù)據(jù)的相關(guān)特性,各種緩存淘汰算法的主要不同在于如何量化局部性。常見的有FIFO算法,LRU算法,這兩種算法的缺點(diǎn)是沒有使用緩存訪問次數(shù)的信息,使得對(duì)于空間局限性較弱的場(chǎng)景效率很低,極端情況下可能完全無(wú)法命中緩存。LIRS(Low Inter-reference Recency Set)算法,有效的避免了上述算法的缺點(diǎn),并且具有較高的性能。眾所周知,緩存替換算法的高效性對(duì)于I/O系統(tǒng)整體性能有著非常重要的影響,常見的緩存替換算法有如下缺陷:

1、緩存污染問題:大量并發(fā)的對(duì)冷塊進(jìn)行訪問會(huì)對(duì)熱塊進(jìn)行不明智的替換,這在序列掃描中非常普遍。

2、循環(huán)性質(zhì)訪問問題:假如需要對(duì)一個(gè)文件進(jìn)行循環(huán)性質(zhì)的訪問,并且文件的大小略微大于緩存的大小,那么就會(huì)出現(xiàn)即將被訪問的快被當(dāng)作冷塊替換出去,一個(gè)明智的策略應(yīng)盡量保證緩存的失效率近似于緩存空間不足的比例。

3、不關(guān)注訪問的概率性特征:在多用戶訪問數(shù)據(jù)庫(kù)場(chǎng)景中,每條記錄的訪問都涉及B樹,即需要先訪問索引再訪問數(shù)據(jù)。

4、通用緩存替換算法沒有考慮到實(shí)時(shí)數(shù)據(jù)的特點(diǎn),即時(shí)效性,數(shù)據(jù)離當(dāng)前時(shí)間越近時(shí)效性越高。

傳統(tǒng)LRU,F(xiàn)IFO算法沒有充分考慮數(shù)據(jù)的歷史訪問信息,訪問概率等信息,只是簡(jiǎn)單的將最近訪問的數(shù)據(jù)緩存起來(lái),這會(huì)導(dǎo)致緩存效率底下在極端情況下緩存每次訪問都不會(huì)命中,LIRS算法改進(jìn)了LRU和FIFO算法的缺點(diǎn),但是沒有充分考慮到緩存數(shù)據(jù)的信息,在實(shí)時(shí)數(shù)據(jù)中越與當(dāng)前時(shí)間靠近的數(shù)據(jù)塊訪問的概率越大。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是提供一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制,其提高了緩存的命中率。

為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:

一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制,其特征在于:IRR表示一個(gè)頁(yè)面最近兩次訪問的距離,R表示上次訪問到至今訪問了多少其他頁(yè),T表示頁(yè)面的時(shí)間因子,緩存首先將IRR較大者替換出緩存,如果IRR相等,則將R在[Rmax,Rmax-S]之間的T最大的頁(yè)面替換出去,Rmax為IRR相等的頁(yè)面中R最大值,Rmax-S為最大值減去S的值。

進(jìn)一步地,若一個(gè)頁(yè)面首次訪問則其IRR為無(wú)窮大,R為0,T為Tcurr-Tmax,Tmax為數(shù)據(jù)最大時(shí)間。

進(jìn)一步地,所述一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制采用的數(shù)據(jù)結(jié)構(gòu)由兩個(gè)塊單元信息數(shù)據(jù)結(jié)構(gòu)集合構(gòu)成,其中低IRR塊保存IRR值低的塊信息,高IRR塊保存高IRR塊的信息。

進(jìn)一步地,所述IRR值低的塊信息和高IRR塊的信息為鏈表或者樹。

進(jìn)一步地,所述兩個(gè)塊單元信息數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)的物理緩存由兩部分組成,低IRR塊是局部性最高的塊需要常駐內(nèi)存內(nèi)存,高IRR塊并不是所有的塊都需要常駐內(nèi)存,只需緩存一部分,其塊的歷史信息保留為算法調(diào)度提供參考;物理緩存的長(zhǎng)度分為低IRR塊長(zhǎng)度Llirr和高IRR塊緩存長(zhǎng)度Lhirr1的和。

進(jìn)一步地,所述S的值為5。

本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)和效果:解決了一般緩存替換算法緩存污染,循環(huán)性質(zhì)訪問,不關(guān)注訪問的概率性特征,沒有考慮到實(shí)時(shí)數(shù)據(jù)的特點(diǎn)等問題,算法同時(shí)考慮了頁(yè)面歷史訪問信息,最近訪問頻率,以及所緩存的數(shù)據(jù)的特征,有效的提高了緩存的命中率。

附圖說(shuō)明

圖1是本發(fā)明的數(shù)據(jù)結(jié)構(gòu)示意圖。

圖2是本發(fā)明的實(shí)施例time9時(shí)刻狀態(tài)示意圖。

圖3是本發(fā)明的實(shí)施例time11時(shí)刻狀態(tài)示意圖。

圖4是本發(fā)明的頻次排名示意圖。

圖5是本發(fā)明的算法命中率對(duì)比示意圖。

具體實(shí)施方式

下面通過(guò)附圖并結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明,以下實(shí)施例是對(duì)本發(fā)明的解釋而本發(fā)明并不局限于以下實(shí)施例。

本發(fā)明的一種實(shí)時(shí)數(shù)據(jù)緩存機(jī)制,使用IRR表示一個(gè)頁(yè)面最近兩次訪問的距離,R表示上次訪問到至今訪問了多少其他頁(yè),T表示頁(yè)面的時(shí)間因子(頁(yè)面所存數(shù)據(jù)結(jié)束時(shí)間到當(dāng)前時(shí)間的長(zhǎng)度)。若一個(gè)頁(yè)面首次訪問則其IRR為無(wú)窮大,R為0,T為Tcurr-Tmax,Tmax為數(shù)據(jù)最大時(shí)間,算法使用一個(gè)頁(yè)面的新近訪問時(shí)間和數(shù)據(jù)時(shí)效性去量化這個(gè)頁(yè)面的局部性。因?yàn)閷?shí)時(shí)數(shù)據(jù)總是越靠近當(dāng)前時(shí)間時(shí)效性越高越有可能最近被訪問。為了將最近訪問頁(yè)面的歷史訪問信息和其緩存的數(shù)據(jù)時(shí)效性考慮進(jìn)去,算法首先考慮將IRR較大者替換出緩存,如果IRR相等,則將R在[Rmax,Rmax-S]之間的T最大的頁(yè)面替換出去,Rmax為IRR相等的頁(yè)面中R最大值,Rmax-S為最大值減去S的值,S一般可以設(shè)置為5。

如圖1所示,為整個(gè)算法的使用的數(shù)據(jù)結(jié)構(gòu),由兩個(gè)塊元信息數(shù)據(jù)結(jié)構(gòu)集合組成,低IRR塊保存IRR值低的塊信息,高IRR塊保存高IRR塊的信息,這兩個(gè)信息可以是鏈表或者樹。對(duì)應(yīng)的物理緩存也由兩部分組成,低IRR塊是局部性最高的塊需要常駐內(nèi)存內(nèi)存,高IRR塊并不是所有的塊都需要常駐內(nèi)存,只需緩存一部分即可,但是其塊的歷史信息應(yīng)該保留為算法調(diào)度提供參考。物理緩存的長(zhǎng)度分為低IRR塊長(zhǎng)度Llirr和高IRR塊緩存長(zhǎng)度Lhirr1的和。

實(shí)施例:

假定共有A,B,C,D,E五塊其最大時(shí)間Tmaxa=1,Tmaxb=2,Tmaxc=3,Tmaxd=4,Tmaxe=5,S=1。

如圖2所示,為time9時(shí)刻狀態(tài),A最近一次訪問是在time8,顧此時(shí)A的R值為1,然而塊A在time6和time8時(shí)刻時(shí)為倒數(shù)第二次訪問和倒數(shù)第一次訪問,兩個(gè)時(shí)間范圍內(nèi)只有塊D被訪問,所以塊A的IRR為1,塊A的T=Tcurr-Tmaxa=9-1=8。塊B最近一次訪問是在time5時(shí)刻,而time6和time8時(shí)刻訪問塊A,time7時(shí)刻訪問D,time9時(shí)刻訪問E,所以塊B的R為3(兩次訪問A只能做一次計(jì)數(shù)),IRR的值為1(time3和time5訪問B,time4訪問C),塊B的T=Tcurr-Tmaxb=9-2=7。塊C只有在time4時(shí)被訪問,所以R為4,IRR為無(wú)窮大,塊C的T=Tcurr-Tmaxc=9-3=6。塊D,E是同樣的道理。

此時(shí)假設(shè)物理緩存大小為L(zhǎng)=Llirr+Lhirr1,Llirr=2,Lhirr1=2,即在該紋理緩存中只能存放兩個(gè)IRR值低的塊,兩個(gè)IRR值高的塊,那么低IRR塊元數(shù)據(jù)信息集合為{A,B},高IRR塊元信息集合為{C,D,E},此時(shí)在C,D,E三塊中由于其塊D,E的R值比C低故而將會(huì)常駐內(nèi)存。保留D,E而不是C是為了保留最近訪問的塊,這些塊最可能下次被訪問。A,B由于其在IRR低集合中所以A,B也常駐內(nèi)存,所以在內(nèi)存中的塊為{A,B,D,E}。

如果在time10時(shí)間內(nèi)訪問C,那么我們?cè)撊绾螌?duì)緩存塊進(jìn)行淘汰,從上面的分析可以知道塊C的IRR值較高,然而此時(shí)IRR較高的塊有D,E常駐內(nèi)存,則此時(shí)是把塊D和塊E中哪塊替換出內(nèi)存需要比較他們的各個(gè)參考值,由于E的IRR為無(wú)窮大所以直接換出E塊,調(diào)入D塊,在D塊進(jìn)入緩存后需要對(duì)兩個(gè)元信息集合做跟新,以確定D該屬于哪個(gè)集合。

如圖3所示,為time10時(shí)訪問塊D,然后time11時(shí)刻訪問塊E的狀態(tài),根據(jù)圖1時(shí)的計(jì)算方法可以得出塊A的R值為2,IRR值為1,T為10;塊B的R值為3,IRR值為1,T為9;塊C的R值為4,IRR值為無(wú)窮大,T為8;塊D的R值為1,IRR值為2,T值為7;塊E的R值為0,IRR值為1,T值為6。此時(shí)塊A,塊B,塊E的IRR值均為1,而低IRR緩存的大小為2,所以A,B,E中只有兩塊能在低IRR緩存中,此時(shí)只能比較R值在[Rmax-S,Rmax]即[2,3],A,B兩塊在比較范圍內(nèi),而此時(shí)Ta=10,Tb=9,所以Ta>Tb所以塊A被移除低IRR塊到高IRR塊中,塊E進(jìn)入第IRR塊中。此時(shí)低IRR塊元信息集合中有{B,E},高IRR塊元信息集合中有{D,B}。

此時(shí)我們給出一個(gè)通用的定義,一個(gè)緩存算法的優(yōu)劣主要體現(xiàn)在查詢命中率上:H=Rqcache/Rq,緩存命中率H為命中緩存的請(qǐng)求次數(shù)Rqcache和總請(qǐng)求次數(shù)Rq的商。則每次查詢的響應(yīng)時(shí)間為TRq=Tcache*H+Tdb*(1-H),其中Tcache為查詢緩存的請(qǐng)求響應(yīng)時(shí)間,Tdb為數(shù)據(jù)庫(kù)服務(wù)其他查詢操作和數(shù)據(jù)傳輸?shù)臅r(shí)間。由于Tdb遠(yuǎn)大于Tcache,因此提高查詢命中率就可以大幅度提高查詢響應(yīng)時(shí)間。

通過(guò)分析大量的實(shí)時(shí)數(shù)據(jù)庫(kù)查詢?nèi)罩究梢缘贸鲈L問最頻繁的數(shù)據(jù)總是在最近幾個(gè)小時(shí)內(nèi)產(chǎn)生的數(shù)據(jù),因此在空間適當(dāng)?shù)臄?shù)據(jù)庫(kù)中如果查詢緩存不出現(xiàn)大比例的緩存數(shù)據(jù)失效替換,則能保證數(shù)據(jù)庫(kù)查詢的效能。分析還發(fā)現(xiàn)查詢頻率最高的20%占據(jù)了80%的請(qǐng)求量如圖4所示。查詢時(shí)間局部性表現(xiàn)為,對(duì)于查詢請(qǐng)求序列(Q1,Q2,Q3,…Qn),Qi(1≤i≤n)表示第i次查詢請(qǐng)求,當(dāng)i≤j時(shí)若Qi=Qj,在間隔d=|i-j|內(nèi)產(chǎn)生的非重復(fù)查詢次數(shù)為IRqi,在第n次查詢時(shí)產(chǎn)生的非重復(fù)查詢次數(shù)為Rqn,對(duì)于一個(gè)頁(yè)面P則從當(dāng)前時(shí)刻n開始最近兩次訪問的非重復(fù)查詢次數(shù)為IRp,距當(dāng)前時(shí)刻非重復(fù)查詢次數(shù)為RP,頁(yè)面時(shí)間戳為Tp。經(jīng)過(guò)以上分析可以通過(guò)相關(guān)特征參數(shù)進(jìn)行建模,表示某個(gè)頁(yè)面的查詢熱值度函數(shù):

fhot(p)=IRp+RP+(1-Hp)*(Tn-Tp)

Hp為第n時(shí)刻頁(yè)面P的命中率,Tn為第n時(shí)刻的時(shí)間值。于是對(duì)于頁(yè)面p其熱值函數(shù)fhot(p)的值月大說(shuō)明這個(gè)頁(yè)面的局部性越差,訪問的可能性越低。如圖5所示為本算法的命中率和LRU算法的命中率比較,在緩存較小區(qū)間隨著緩存空間的增高架緩存命中率提升很快,從圖中可以看出本文提出的算法比LRU算法在最優(yōu)緩存空間(查詢總量20%)下命中率有顯著提升。

本說(shuō)明書中所描述的以上內(nèi)容僅僅是對(duì)本發(fā)明所作的舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,只要不偏離本發(fā)明說(shuō)明書的內(nèi)容或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巫溪县| 伊川县| 长汀县| 涞水县| 白沙| 庆安县| 伊宁县| 上蔡县| 满洲里市| 邢台县| 驻马店市| 南京市| 论坛| 德州市| 峨山| 昆山市| 建宁县| 上思县| 葫芦岛市| 赤城县| 腾冲县| 祥云县| 巴楚县| 玉林市| 武宁县| 中西区| 合水县| 松溪县| 福贡县| 偏关县| 咸阳市| 吐鲁番市| 简阳市| 鹿邑县| 台山市| 汉阴县| 崇义县| 区。| 无极县| 泸定县| 即墨市|