两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種文件系統(tǒng)stride訪問模式的預讀方法

文檔序號:6569413閱讀:748來源:國知局
專利名稱:一種文件系統(tǒng)stride訪問模式的預讀方法
技術(shù)領(lǐng)域
本涉及對特定應用的訪問模式跨步讀模式(stride模式)設(shè)計的預讀算法,具體來說,涉及一種文件系統(tǒng)stride訪問模式的預讀方法。
背景技術(shù)
預讀是把預測將要訪問的數(shù)據(jù)按頁提前批量加載到內(nèi)存中,這有助于IO的順序化,異步化和并行化,有助于改善文件系統(tǒng)的讀性能。異步讀取有助于對上層應用隱藏IO 延遲,這在網(wǎng)絡(luò)文件服務中可以有效提高IO效率;對于科學計算和工程計算等應用中,一般計算和IO交替進行,預取可以提高計算和IO的并行。目前預讀算法主要分兩種,一種是基于模式匹配的啟發(fā)式自動檢測算法,這種算法對應用程序透明,能檢測到的可以預讀模式比較單一。另一種是用戶通過readahead和 fadvise接口顯示通知預讀。這種預讀模式對用戶不透明,需要用戶程序中顯示調(diào)用,它可以應對各種比較復雜的的訪問模式。目前在Iinux操作系統(tǒng)提供了通用的順序預讀算法,來加速順序讀的性能,并沒有針對跨步讀(stride)模式的預讀算法。

發(fā)明內(nèi)容
本發(fā)明針對上述模式,提供了啟發(fā)式的stirde預讀算法,同時通過ioctl接口提供了一種用戶可以批量通知預讀的接口。一種文件系統(tǒng)stride訪問模式的預讀方法,在每次讀之前,更新stride預讀狀態(tài)的歷史讀記錄,并根據(jù)歷史讀記錄,通過 stride模式的匹配算法來檢測是否是stride讀模式;如果是,則開啟stride模式的預讀, 進入stride模式的預讀算法;否則進入順序預讀算法。優(yōu)選的,所述stride預讀模式開啟后,檢測的stride讀模式的參數(shù),獲取跨步讀模式step和size參數(shù),在構(gòu)建預讀窗口時,跳過不需要訪問的頁,只預讀需要訪問的頁。優(yōu)選的,根據(jù)所述預讀的命中率,來動態(tài)調(diào)整預讀窗口的大小。優(yōu)選的,所述stride模式有三種,F(xiàn)IX_ALL模式訪問的間隔和長度都相;FIX_P0S模式訪問的間隔相同,但是長度不同;FIX_STEP模式訪問的間隔步長相同,長度不同。優(yōu)選的,所述預讀方法在ictol命令中添加自定義參數(shù),所述自定義參數(shù)包括預讀段的數(shù)目、預讀的偏移和長度。本發(fā)明對特定應用的訪問模式跨步讀模式(stride模式)設(shè)計的預讀方法,有效提高了應用程序stride模式訪問的性能。
具體實施方式
預讀算法的基本思路通常文件系統(tǒng)的預讀在內(nèi)核系統(tǒng)例程generiC_file_read函數(shù)里通過page_ cache_readahead實現(xiàn),本文要實現(xiàn)自己的預讀算法,就必須修改generic_file_read例程,在其中添加自己的stride預讀算法,并和內(nèi)核的順序預讀算法協(xié)同工作。stride模式的檢測有三種stride模式在第一模式下,訪問的間隔和長度都相同,這種稱謂FIX_ALL 模式,第二種是訪問的間隔相同,但是長度不同,這種稱謂FIX_P0S模式,在第三種是訪問的間隔步長相同,長度不同,這中稱為FIX_STEP模式,這三種stride讀模式的檢測,根據(jù)上述三種特征來分別檢測。預讀窗口的構(gòu)建通過上述模式,來檢測出如果是stride模式預讀,就構(gòu)建相應的預讀窗口,在構(gòu)建預讀窗口時,要根據(jù)三種模式,來計算預讀的目標頁,特別要跳過那些不需要預讀的頁。 窗口的構(gòu)建是自適應的,在初始時,窗口相對比較小,根據(jù)預讀的命中率逐步加大。ioctl批量通知機制的實現(xiàn)相對于readahead只能提供一次只能預讀一個連續(xù)的數(shù)據(jù)塊預讀接口,本發(fā)明通過ioctl提供可以批量預讀的預讀接口。修改ioctl命令,給ioctl添加一個0FS_READAHEAD的命令,來告訴文件系統(tǒng),這是一個預讀的命令。通過定義參數(shù),可以批量通知內(nèi)核多個不連續(xù)的文件塊的預讀。ioctl預讀接口的不同之處,在于它可以一次批量加載多個文件段預讀請求。自己定義了其接口參數(shù)如下
typedef struct parastor—readv{ unsigned long offset; unsigned long count; }parastor—readv—t; struct parastor—readahead{ int nr;
parastor—readv—t氺 readv;
};如上接口,用戶可以指定nr為預讀段的數(shù)目。在readv參數(shù)里添加預讀的偏移和長度。這樣就可以指定的預讀的多個文件段。
權(quán)利要求
1.一種文件系統(tǒng)Stride訪問模式的預讀方法,其特征在于在每次讀之前,更新stride預讀狀態(tài)的歷史讀記錄,并根據(jù)歷史讀記錄,通過stride 模式的匹配算法來檢測是否是stride讀模式;如果是,則開啟stride模式的預讀,進入 stride模式的預讀算法;否則進入順序預讀算法。
2.如權(quán)利要求1所述的方法,其特征在于所述stride預讀模式開啟后,檢測的 stride讀模式的參數(shù),獲取跨步讀模式step和size參數(shù),在構(gòu)建預讀窗口時,跳過不需要訪問的頁,只預讀需要訪問的頁。
3.如權(quán)利要求2所述的方法,其特征在于根據(jù)所述預讀的命中率,來動態(tài)調(diào)整預讀窗口的大小。
4.如權(quán)利要求1所述的方法,其特征在于所述stride模式有三種,F(xiàn)IX_ALL模式訪問的間隔和長度都相;FIX_POS模式訪問的間隔相同,但是長度不同;FIX.STEP模式訪間的間隔步長相同,長度不同。
5.如權(quán)利要求1所述的方法,其特征在于所述預讀方法在ictol命令中添加自定義參數(shù),所述自定義參數(shù)包括預讀段的數(shù)目、預讀的偏移和長度。
全文摘要
本發(fā)明提供了一種文件系統(tǒng)stride訪問模式的預讀方法,在每次讀之前,更新stride預讀狀態(tài)的歷史讀記錄,并根據(jù)歷史讀記錄,通過stride模式的匹配算法來檢測是否是stride讀模式;如果是,則開啟stride模式的預讀,進入stride模式的預讀算法;否則進入順序預讀算法。本發(fā)明對特定應用的訪問模式跨步讀模式(stride模式)設(shè)計的預讀方法,有效提高了應用程序stride模式訪問的性能。
文檔編號G06F17/30GK102385622SQ20111032829
公開日2012年3月21日 申請日期2011年10月25日 優(yōu)先權(quán)日2011年10月25日
發(fā)明者劉新春, 呂民強, 楊浩, 苗艷超, 邵宗有 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
昂仁县| 满城县| 永泰县| 金川县| 苍梧县| 莱芜市| 罗城| 高要市| 秦皇岛市| 班玛县| 浦县| 茶陵县| 沿河| 玉环县| 克山县| 格尔木市| 宣城市| 恭城| 仲巴县| 德江县| 延川县| 山西省| 苗栗市| 古田县| 泽库县| 东光县| 大洼县| 常熟市| 宣恩县| 南雄市| 永兴县| 茌平县| 伊川县| 武城县| 嵊州市| 天祝| 五指山市| 五莲县| 囊谦县| 横山县| 澄迈县|