[發(fā)明專利]一種自適應(yīng)緩存預(yù)取方法有效
| 申請?zhí)枺?/td> | 201010611530.1 | 申請日: | 2010-12-17 |
| 公開(公告)號: | CN102023931A | 公開(公告)日: | 2011-04-20 |
| 發(fā)明(設(shè)計)人: | 袁清波;楊杰;邵宗有 | 申請(專利權(quán))人: | 曙光信息產(chǎn)業(yè)(北京)有限公司 |
| 主分類號: | G06F12/08 | 分類號: | G06F12/08 |
| 代理公司: | 北京安博達知識產(chǎn)權(quán)代理有限公司 11271 | 代理人: | 徐國文 |
| 地址: | 100084 *** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 自適應(yīng) 緩存 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及存儲系統(tǒng)的性能優(yōu)化領(lǐng)域,具體涉及一種自適應(yīng)緩存預(yù)取方法。
背景技術(shù)
存儲器是計算機的核心部件之一,其性能直接關(guān)系到整個計算機系統(tǒng)性能的高低。如何以合理的價格,設(shè)計出容量和速度滿足計算機系統(tǒng)要求的存儲器系統(tǒng),始終是計算機體系結(jié)構(gòu)設(shè)計中的關(guān)鍵問題之一。計算機用戶希望容量越大越好,而且速度還要快,價格要便宜。僅用單一的一種存儲器是很難達到這一目標的。較好的方法是采用存儲層次,用多種存儲器構(gòu)成存儲器的層次結(jié)構(gòu)。然而,人們對于存儲器的容量大、速度快、價格低的三個要求是相互矛盾的:(1)速度越快,每位價格就越高;(2)容量越大,每位價格就越低;(3)容量越大,速度就越慢。如果只采用其中的一種技術(shù),存儲器設(shè)計者就會陷入困境:從實現(xiàn)“容量大、價格低”的要求來看,應(yīng)采用能提供大容量的存儲器技術(shù);但從滿足性能需求的角度來看,又應(yīng)采用昂貴且容量較小的快速存儲器。走出這種困境的唯一方法,是采用多種存儲器技術(shù),構(gòu)成多級存儲層次。圖1所示的是典型的兩級存儲模型,包括容量小但速度快的高速IO設(shè)備和容量大但速度慢的慢速IO設(shè)備,用戶的所有數(shù)據(jù)都存放在慢速IO設(shè)備上,高速IO設(shè)備作為一個Cache使用,用戶讀取IO數(shù)據(jù)時總是先查找是否在高速IO設(shè)備中已有一份拷貝。
如果用戶每次訪問的數(shù)據(jù)都能在高速IO設(shè)備中找到,那系統(tǒng)的IO性能將會得到顯著提高。但是由于高速設(shè)備容量遠小于慢速設(shè)備,所以只能有一部分數(shù)據(jù)存放在高速IO設(shè)備上,而用戶對數(shù)據(jù)的請求范圍是非常大的,所以選擇哪些數(shù)據(jù)緩存在高速IO設(shè)備上將極大影響系統(tǒng)的整體性能。根據(jù)用戶的歷史訪問記錄預(yù)測下一次可能訪問的數(shù)據(jù),并將這些數(shù)據(jù)預(yù)取到高速IO設(shè)備上,那么當用戶真正需要訪問這些數(shù)據(jù)時,性能就會非常高。單個線程的應(yīng)用程序?qū)O請求的順序性比較好,但是如果系統(tǒng)中存在多個順序訪問的應(yīng)用程序,那么它們下發(fā)到IO設(shè)備上的請求就變得林亂不堪,如果根據(jù)單一訪問流進行預(yù)取效果將會比較差。
發(fā)明內(nèi)容
為解決預(yù)取問題,本發(fā)明首先對流進行過濾,然后再順序預(yù)取。
一種自適應(yīng)緩存預(yù)取方法,步驟如下:
A、檢查每個流,并使用多個隊列記錄每次訪問的地址;
B、如果當前訪問的地址與之前某個隊列中的地址連續(xù),則認定為一個流,觸發(fā)預(yù)取操作;
C、檢測預(yù)取對命中率的影響,若命中率低于閾值,則更改預(yù)取策略減少預(yù)取數(shù)量或關(guān)閉預(yù)取。
本發(fā)明的一種優(yōu)選技術(shù)方案在于:所述預(yù)取策略包括不預(yù)取,始終預(yù)取和檢測到順序讀才預(yù)取,否則不預(yù)取。
本發(fā)明的另一種優(yōu)選技術(shù)方案在于:根據(jù)用戶讀取的數(shù)據(jù)選擇預(yù)取的region,region為將io設(shè)備劃分為大小相等的塊。
本發(fā)明的一種較優(yōu)選技術(shù)方案在于:預(yù)取region的策略為:
數(shù)據(jù)在Region的比較靠前的位置,那么直接將數(shù)據(jù)所在的Region一次從慢速IO設(shè)備讀到高速IO設(shè)備即可,同時返回給用戶之前所請求的數(shù)據(jù);
數(shù)據(jù)在Region的最后一部分空間,那么應(yīng)該讀兩部分的數(shù)據(jù):請求的數(shù)據(jù)和緊鄰的下一個Region的所有數(shù)據(jù);
數(shù)據(jù)橫跨兩個Region,那么應(yīng)該一次發(fā)出從當前Region的后一部分到下一個Region的所有數(shù)據(jù)的請求。
本發(fā)明在預(yù)取前對訪問流做了過濾,還原了原來的多個順序流,然后分別針對每個順序流做預(yù)取,由于順序預(yù)取效率非常高,整個系統(tǒng)的性能將得到提升。
附圖說明
圖1典型的兩級存儲模型
圖2預(yù)取過程
圖3流檢測實現(xiàn)
具體實施方式
在實現(xiàn)過程中,可以提供多種類型的預(yù)取策略供用戶使用。一種是任何情況下都不觸發(fā)預(yù)取操作,另一種只要有讀操作均從慢速IO設(shè)備上預(yù)取一定數(shù)量的數(shù)據(jù)到高速IO設(shè)備。這兩種情況的性能都比較差,完全不預(yù)取浪費了帶寬、增加了延遲,全部預(yù)取則可能干擾正常的讀寫操作,甚至每次的讀操作都可能因為等待預(yù)取而增加很大的開銷,而且更嚴重的是預(yù)取回來的數(shù)據(jù)可能根本不會被接下來的IO請求所使用。再一種則是兩者的折中,在判斷出預(yù)取可能帶來好處時才發(fā)出預(yù)取的動作。
最后一種是基于流的預(yù)測,它的基礎(chǔ)是需要發(fā)現(xiàn)順序流,而根據(jù)之前的分析可知,系統(tǒng)中可能存在多個順序流,但是混到一起發(fā)到下層的IO系統(tǒng)后就不再是順序的了,所以在預(yù)取之前必須將單一的混合流還原成原來的多個順序流。實現(xiàn)方式可以采取簡單的連續(xù)地址記錄,兩個地址就可以組成一個流,這樣如果第三個地址也屬于這個流時即可以發(fā)出預(yù)取操作。比如一個如下所示的地址流依次進入流檢測系統(tǒng):A、B、C、A+1、A+2,那么流檢測系統(tǒng)會作如圖3所示的變化:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于曙光信息產(chǎn)業(yè)(北京)有限公司,未經(jīng)曙光信息產(chǎn)業(yè)(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010611530.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 使用后向自適應(yīng)規(guī)則進行整數(shù)數(shù)據(jù)的無損自適應(yīng)Golomb/Rice編碼和解碼
- 一種自適應(yīng)軟件UML建模及其形式化驗證方法
- 媒體自適應(yīng)參數(shù)的調(diào)整方法、系統(tǒng)及相關(guān)設(shè)備
- 五自由度自適應(yīng)位姿調(diào)整平臺
- 采用自適應(yīng)機匣和自適應(yīng)風(fēng)扇的智能發(fā)動機
- 一種自適應(yīng)樹木自動涂白裝置
- 一種基于微服務(wù)的多層次自適應(yīng)方法
- 一種天然氣發(fā)動機燃氣自適應(yīng)控制方法及系統(tǒng)
- 一種中心自適應(yīng)的焊接跟蹤機頭
- 一種有砟軌道沉降自適應(yīng)式軌道系統(tǒng)





