[發明專利]一種用于網絡文件系統的流式數據預讀方法無效
| 申請號: | 201210039681.3 | 申請日: | 2012-02-21 |
| 公開(公告)號: | CN102567548A | 公開(公告)日: | 2012-07-11 |
| 發明(設計)人: | 李小勇;王皓;胡鵬;戰科宇;王玲惠;閆鶴 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;H04L12/56 |
| 代理公司: | 上??剖⒅R產權代理有限公司 31225 | 代理人: | 趙志遠 |
| 地址: | 200240 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 網絡 文件系統 數據 方法 | ||
技術領域
本發明涉及一種計算機網絡相關技術,尤其是涉及一種用于網絡文件系統的流式數據預讀方法。
背景技術
網絡文件系統是文件系統之上的一個網絡抽象,它允許一臺計算機(客戶端)以與本地文件系統類似的方式來通過網絡訪問位于遠程計算機(服務器)上的文件。
客戶端發起讀寫請求,它通過網絡調用遠程計算機上提供的服務程序。網絡文件系統的IO請求既包括了數據在網絡上的傳輸過程又包括了服務器端的磁盤IO過程。而網絡和磁盤往往是影響IO性能的瓶頸因素。如何最大限度的挖掘網絡和磁盤的性能潛力,長期以來一直都是非?;钴S的研究課題。文件預取,又稱預讀,正是最重要的優化技術之一,并已經成為現代操作系統的一項必備的功能。而對于網絡文件系統,借鑒本地文件系統的預讀思想,在客戶端采用預讀策略,同樣是一種行之有效的IO策略。
目前已有的研究注重于cache的有效利用和數據一致性問題,如Collective?Prefetching?for?Parallel?I/O?Systems[],NFS?Tricks?and?Benchmarking?Traps[],但對于在如何在預讀過程中隱藏網絡傳輸延遲,提高網絡文件系統性能,往往缺少進一步的考慮。經過對NFS代碼研究和抓包分析,發現它客戶端的預讀沒能把網絡傳輸和服務器端的磁盤IO并行起來。這些預讀請求相對于客戶端來說是異步的,也就是說當客戶端發出預讀請求后,無需阻塞等待這些數據返回就可以繼續獲得進程的控制權繼續下一步的工作,等確實需要這其中的某些數據的時候再把數據收上來。但是每兩次的預讀之間卻是同步的過程,即客戶端必須等待完全收到當前的預讀數據之后,才能發下一次的預讀請求。在客戶端收預讀數據的這段時間內,服務器端并不做任何的IO操作。
發明內容
本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種提高讀數據的吞吐量的用于網絡文件系統的流式數據預讀方法。
本發明的目的可以通過以下技術方案來實現:
一種用于網絡文件系統的流式數據預讀方法,其特征在于,包括以下步驟:
第一步,初始化工作:客戶端設置一個用于緩存從服務器端讀來的數據的讀緩沖區buffer;
第二步,客戶端收到用戶發來的讀請求時,判斷是否為首次收到讀請求,若為是,客戶端向服務器端轉發讀請求,并將從服務器端接收上來的數據直接返回給用戶;若為否執行第四步;
第三步,客戶端向服務器發送的當前預讀請求;
第四步,當新的讀請求收到時客戶端先判斷buffer是否存在該讀請求所需要的數據,若為是,直接把存在的部分數據返回給用戶,并將buffer中沒有的剩余數據打包成新的讀請求重新執行第四步;若為否,執行第五步。
第五步,客戶端判斷該讀請求的范圍是否包含在當前預讀請求范圍內,若為是,則先發送下一次預讀請求,再把當前預讀的數據收上來,存入buffer,并把用戶所需的數據返回,再把下一次預讀置為當前預讀,并返回第四步;若為否,返回第二步。
所述的buffer包括所緩沖的數據在文件中的偏移量buffer.start和長度buffer.length,該長度buffer.length小于buffer的大小BUF_SIZE,其中BUF_SIZE可根據需要設置。
所述的第二步中的首次收到讀請求的客戶端狀態為:buffer為空且之前沒有發過預讀請求。
所述的第二步和第四步中的讀請求包括請求的文件句柄read.fd、編號read.no、偏移量read.offset、長度read.length和用于收取數據的用戶緩沖區地址read.buf。
所述的第三步中的當前預讀請求包括預讀請求的文件句柄currentPrefetch.fd、偏移currentPrefetch.offset和長度currentPretch.length,所述的預讀請求的文件句柄和讀請求的文件句柄一致,即currentPrefetch.fd=read.fd,所述的預讀請求的偏移為當前讀請求的偏移+當前讀請求的長度,即currentPrefetch.offset=read.offset+read.length,currentPretch.length為預讀大小的缺省值PREFETCH_SIZE。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210039681.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種負載納米金屬顆粒的石墨烯復合材料的制備方法
- 下一篇:低壓差穩壓器
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





