一種文件系統(tǒng)緩存預(yù)讀取方法
【專利說(shuō)明】一種文件系統(tǒng)緩存預(yù)讀取方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及磁盤讀寫操作方法,具體的說(shuō)就是一種文件系統(tǒng)緩存預(yù)讀取方法。
【背景技術(shù)】
[0003]在磁盤讀寫操作過(guò)程中,磁盤驅(qū)動(dòng)器存取速度通常要比內(nèi)存存取慢很多。當(dāng)用戶進(jìn)行數(shù)據(jù)操作時(shí),直接對(duì)磁盤進(jìn)行讀寫的方式很容易由于速度慢而阻塞應(yīng)用程序,同時(shí)效率也很低。文件系統(tǒng)緩存就是為了解決這種情況而設(shè)計(jì)的。緩存通常由高速存儲(chǔ)介質(zhì)組成,讀寫速度很快,時(shí)延較低。
[0004]預(yù)讀操作即提前預(yù)測(cè)并讀取后續(xù)讀請(qǐng)求的內(nèi)容,使得后續(xù)讀請(qǐng)求能夠命中緩存,而不用再次磁盤發(fā)起I/o操作。文件系統(tǒng)緩存預(yù)讀可以減少磁盤I/O的次數(shù),增加單次I/O的數(shù)據(jù)量,隱藏了后續(xù)讀請(qǐng)求的讀時(shí)延,提升了系統(tǒng)的讀性能。預(yù)讀技術(shù)的關(guān)鍵在于測(cè)準(zhǔn)確率,因此,必須對(duì)請(qǐng)求進(jìn)行分析和判斷,通過(guò)分析緩存中的數(shù)據(jù),發(fā)現(xiàn)其中的規(guī)律,然后利用其中的規(guī)律信息采取合適的預(yù)讀取策略。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)發(fā)展?fàn)顩r,本發(fā)明提出了一種在文件讀寫過(guò)程中,對(duì)文件系統(tǒng)緩存的預(yù)讀取方法。
[0006]本發(fā)明所述一種文件系統(tǒng)緩存預(yù)讀取方法,解決上述技術(shù)問(wèn)題采用的技術(shù)方案如下:該文件系統(tǒng)緩存預(yù)讀取方法,在用戶程序進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),采用預(yù)讀取策略提高讀寫效率,預(yù)讀取的時(shí)機(jī)隨著價(jià)值窗口的滑動(dòng)情況而定,預(yù)讀取扇區(qū)大小也隨價(jià)值窗口的變化而改變;該方法通過(guò)自適應(yīng)改變預(yù)讀取扇區(qū)的時(shí)機(jī)和預(yù)讀取扇區(qū)的大小,有效的提高磁盤讀取數(shù)據(jù)的效率。
[0007]優(yōu)選的,在進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),進(jìn)入讀操作入口,若滑動(dòng)價(jià)值窗口到命中的緩存扇區(qū),并判斷價(jià)值窗口是否滑出緩存窗口。
[0008]優(yōu)選的,當(dāng)預(yù)讀取價(jià)值窗口滑動(dòng)在緩存窗口之中時(shí),不進(jìn)行預(yù)讀操作,并且重置窗口增長(zhǎng)因子α。
[0009]優(yōu)選的,當(dāng)預(yù)讀取價(jià)值窗口部分滑出緩存窗口時(shí),進(jìn)行預(yù)讀取操作,增長(zhǎng)因子α加I。
[0010]優(yōu)選的,當(dāng)預(yù)讀取價(jià)值窗口部分滑出緩存窗口時(shí),進(jìn)行扇區(qū)預(yù)讀操作,預(yù)讀取扇區(qū)的大小為價(jià)值窗口大小乘以2的α次冪。
[0011]優(yōu)選的,當(dāng)預(yù)讀取價(jià)值窗口完全滑出緩存窗口時(shí),進(jìn)行預(yù)讀取操作,同時(shí)開啟新的價(jià)值窗口和緩存窗口。
[0012]本發(fā)明的一種文件系統(tǒng)緩存預(yù)讀取方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明在用戶程序進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),采用預(yù)讀取策略提高讀寫效率,通過(guò)自適應(yīng)改變預(yù)讀取扇區(qū)的時(shí)機(jī)和預(yù)讀取扇區(qū)的大小,能夠?qū)ξ募到y(tǒng)緩存的自適應(yīng)預(yù)讀取進(jìn)行管理,可以有效的提高磁盤讀取數(shù)據(jù)的效率。
【附圖說(shuō)明】
[0013]附圖1為所述文件系統(tǒng)緩存預(yù)讀取方法的流程圖;
附圖2為價(jià)值窗口在緩存窗口內(nèi)的示意圖;
附圖3為價(jià)值窗口部分在緩存窗口內(nèi)的示意圖;
附圖4為價(jià)值窗口滑出緩存窗口內(nèi)的示意圖。
【具體實(shí)施方式】
[0014]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參考附圖,對(duì)本發(fā)明所述一種文件系統(tǒng)緩存預(yù)讀取方法進(jìn)一步詳細(xì)說(shuō)明。
[0015]本發(fā)明所述一種文件系統(tǒng)緩存預(yù)讀取方法,在用戶程序進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),采用預(yù)讀取策略提高讀寫效率,預(yù)讀取的時(shí)機(jī)隨著價(jià)值窗口的滑動(dòng)情況而定,預(yù)讀取扇區(qū)大小也隨價(jià)值窗口的變化而改變。所述價(jià)值窗口即Value Window ;Value Window Size表示預(yù)定義的連續(xù)扇區(qū)數(shù)據(jù)的長(zhǎng)度,可以設(shè)為4K、8K和16K等小塊大小,考慮到緩存總大小的限制,設(shè)置范圍應(yīng)在[4Κ,256Κ]。
[0016]實(shí)施例:
本實(shí)施例所述一種文件系統(tǒng)緩存預(yù)讀取方法,通過(guò)自適應(yīng)改變預(yù)讀取扇區(qū)的時(shí)機(jī)和預(yù)讀取扇區(qū)的大小,可以有效的提高磁盤讀取數(shù)據(jù)的效率。如附圖1所示,在進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),進(jìn)入讀操作入口,若滑動(dòng)價(jià)值窗口到命中的緩存扇區(qū),并判斷價(jià)值窗口是否滑出緩存窗口。
[0017]當(dāng)預(yù)讀取價(jià)值窗口滑動(dòng)在緩存窗口之中時(shí),不進(jìn)行預(yù)讀操作,并且重置窗口增長(zhǎng)因子α ;當(dāng)預(yù)讀取價(jià)值窗口部分滑出緩存窗口時(shí),進(jìn)行預(yù)讀取操作,增長(zhǎng)因子α加I ;當(dāng)預(yù)讀取價(jià)值窗口完全滑出緩存窗口時(shí),進(jìn)行預(yù)讀取操作,同時(shí)開啟新的價(jià)值窗口和緩存窗口。
[0018]當(dāng)預(yù)讀取價(jià)值窗口部分滑出緩存窗口時(shí),應(yīng)當(dāng)進(jìn)行扇區(qū)預(yù)讀操作,預(yù)讀取扇區(qū)的大小為價(jià)值窗口大小乘以2的α次冪。
[0019]本實(shí)施例所述文件系統(tǒng)緩存預(yù)讀取方法中,所述緩存窗口即Cache Window,CacheWindow Size表示已經(jīng)緩存的連續(xù)扇區(qū)數(shù)據(jù)的長(zhǎng)度,即緩存窗口大小,本發(fā)明稱一段連續(xù)扇區(qū)的數(shù)據(jù)在一個(gè)緩存窗口 Cache Window中。緩存池:即最大緩存空間;緩存池中包含多個(gè)緩存窗口,每個(gè)緩存窗口內(nèi)的數(shù)據(jù)為一段讀入緩存中的連續(xù)扇區(qū)的數(shù)據(jù),雖然一個(gè)緩存窗口中的數(shù)據(jù)在扇區(qū)id上是連續(xù)的,但是并不要求其在緩存池中也連續(xù)存放。
[0020]使用本實(shí)施例所述文件系統(tǒng)緩存預(yù)讀取方法,第一次讀取磁盤數(shù)據(jù)時(shí),緩存不命中,預(yù)讀取數(shù)據(jù)大小為價(jià)值窗口大小,緩存窗口大小同樣為價(jià)值窗口大小,即Cache WindowSize = Value Window Size0
[0021]當(dāng)讀數(shù)據(jù)緩存命中時(shí),滑動(dòng)價(jià)值窗口到命中緩存數(shù)據(jù)的扇區(qū)id,然后判斷價(jià)值窗口是否滑出了緩存窗口。如果價(jià)值窗口沒有滑出緩存窗口,則不進(jìn)行緩存預(yù)讀取操作,并且重置窗口增長(zhǎng)因子α如圖2所示。當(dāng)價(jià)值窗口部分滑出了緩存窗口,則開啟緩存預(yù)讀取操作。預(yù)讀取數(shù)據(jù)大小為價(jià)值窗口大小乘以2的α次冪,并且增長(zhǎng)因子α加1,如圖3所示。當(dāng)價(jià)值窗口完全滑出了緩存窗口,即讀數(shù)據(jù)緩存不命中時(shí),開啟新的價(jià)值窗口和緩存窗口,如圖4所示。
[0022]本發(fā)明所述文件系統(tǒng)緩存預(yù)讀取方法,可以根據(jù)已讀緩存數(shù)據(jù)的信息,通過(guò)價(jià)值窗口和緩存窗口的配合,自適應(yīng)的決定下一次預(yù)讀取緩存數(shù)據(jù)的大小,不僅能夠通過(guò)讀入緩存數(shù)據(jù)提高磁盤讀寫效率,而且可以避免讀入太多無(wú)用緩存信息,使緩存效率達(dá)到最優(yōu)。
[0023]上述【具體實(shí)施方式】?jī)H是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述【具體實(shí)施方式】,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種文件系統(tǒng)緩存預(yù)讀取方法,其特征在于,在用戶程序進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),采用預(yù)讀取策略,預(yù)讀取的時(shí)機(jī)隨著價(jià)值窗口的滑動(dòng)情況而定,預(yù)讀取扇區(qū)大小也隨價(jià)值窗口的變化而改變。
2.根據(jù)權(quán)利要求1所述一種文件系統(tǒng)緩存預(yù)讀取方法,其特征在于,在進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),進(jìn)入讀操作入口,若滑動(dòng)價(jià)值窗口到命中的緩存扇區(qū),并判斷價(jià)值窗口是否滑出緩存窗口。
3.根據(jù)權(quán)利要求2所述一種文件系統(tǒng)緩存預(yù)讀取方法,其特征在于,當(dāng)預(yù)讀取價(jià)值窗口滑動(dòng)在緩存窗口之中時(shí),不進(jìn)行預(yù)讀操作,并且重置窗口增長(zhǎng)因子α。
4.根據(jù)權(quán)利要求2所述一種文件系統(tǒng)緩存預(yù)讀取方法,其特征在于,當(dāng)預(yù)讀取價(jià)值窗口部分滑出緩存窗口時(shí),進(jìn)行預(yù)讀取操作,增長(zhǎng)因子α加I。
5.根據(jù)權(quán)利要求3所述一種文件系統(tǒng)緩存預(yù)讀取方法,其特征在于,當(dāng)預(yù)讀取價(jià)值窗口部分滑出緩存窗口時(shí),進(jìn)行扇區(qū)預(yù)讀操作,預(yù)讀取扇區(qū)的大小為價(jià)值窗口大小乘以2的α次幕。
6.根據(jù)權(quán)利要求2所述一種文件系統(tǒng)緩存預(yù)讀取方法,其特征在于,當(dāng)預(yù)讀取價(jià)值窗口完全滑出緩存窗口時(shí),進(jìn)行預(yù)讀取操作,同時(shí)開啟新的價(jià)值窗口和緩存窗口。
【專利摘要】本發(fā)明公開一種文件系統(tǒng)緩存預(yù)讀取方法,涉及磁盤讀寫操作方法,在用戶程序進(jìn)行磁盤數(shù)據(jù)讀寫時(shí),采用預(yù)讀取策略提高讀寫效率,預(yù)讀取的時(shí)機(jī)隨著價(jià)值窗口的滑動(dòng)情況而定,預(yù)讀取扇區(qū)大小也隨價(jià)值窗口的變化而改變。本發(fā)明通過(guò)自適應(yīng)改變預(yù)讀取扇區(qū)的時(shí)機(jī)和預(yù)讀取扇區(qū)的大小,能夠?qū)ξ募到y(tǒng)緩存的自適應(yīng)預(yù)讀取進(jìn)行管理,可以有效的提高磁盤讀取數(shù)據(jù)的效率。
【IPC分類】G06F17-30, G06F12-02
【公開號(hào)】CN104715048
【申請(qǐng)?zhí)枴緾N201510135295
【發(fā)明人】張?jiān)螺x, 張會(huì)健
【申請(qǐng)人】浪潮集團(tuán)有限公司
【公開日】2015年6月17日
【申請(qǐng)日】2015年3月26日