[發明專利]數據讀取方法、裝置及計算設備有效
| 申請號: | 201310267802.4 | 申請日: | 2013-06-28 |
| 公開(公告)號: | CN103336672A | 公開(公告)日: | 2013-10-02 |
| 發明(設計)人: | 張勇;李海豐;杜培亮 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06 |
| 代理公司: | 北京弘權知識產權代理事務所(普通合伙) 11363 | 代理人: | 陳蕾;許偉群 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 讀取 方法 裝置 計算 設備 | ||
技術領域
本發明涉及計算機領域,特別涉及數據讀取方法、裝置及計算設備。
背景技術
計算設備內通常包括具有計算能力的中央處理器(Central?Processing?Unit,CPU)、硬盤、內存等硬件設備。其中,硬盤和內存均為計算設備內的存儲媒介,由于硬盤由機械部件帶動運轉,因此CPU從硬盤內讀取數據的速度要遠低于從內存讀取數據的速度?,F有技術中,CPU從硬盤內讀取數據時,將根據數據讀請求所請求數據的大小依次生成多個塊讀取請求,并對這些塊讀取請求進行串行處理,即每一次僅讀取一個塊讀取請求對應的數據。
發明人在對現有技術的研究過程中發現,通過串行處理方式對塊讀取請求進行處理時,由于同一時刻僅處理一個塊讀取請求,因此處理效率和數據讀取效率都較低;并且,由于處理每一個塊讀取請求時,都需要掛起數據讀請求的用戶進程,并在處理下一個塊讀取請求時,喚醒前一次掛起的用戶進程,因此當同一數據讀請求的塊讀取請求較多時,計算設備內的進程調度開銷較大。
發明內容
本發明實施例提供數據讀取方法、裝置及計算設備,以提高從硬盤讀取數據效率,減少數據讀取過程中進程調度的開銷。
為了解決上述技術問題,本發明實施例公開了如下技術方案:
第一方面,提供一種數據讀取方法,所述方法包括:
接收用戶進程提交的數據讀請求;
根據所述數據讀請求生成至少兩個塊讀取請求;
將所述至少兩個塊讀取請求一次性提交至硬盤的輸入輸出IO調度隊列;
通過調度所述IO調度隊列中的所述至少兩個塊讀取請求,將所述數據讀請求所請求的數據從硬盤緩存區讀取到用戶緩存區。
結合第一方面,在第一方面的第一種可能的實現方式中,所述根據所述數據讀請求生成至少兩個塊讀取請求,包括:
根據所述數據讀請求所請求的數據的大小將所述數據分解成多個數據頁;
在內核緩存區內為所述多個數據頁中的至少兩個數據頁分配存儲空間;以及
為所述至少兩個數據頁中的每一個數據頁生成一個塊讀取請求。
結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述在內核緩存區內為所述多個數據頁中的至少兩個數據頁分配存儲空間具體包括:根據所述多個數據頁的緩存位置,在所述內核緩存區內為所述多個數據頁中位于硬盤緩存區的至少兩個數據頁分配存儲空間;
所述為所述至少兩個數據頁中的每一個數據頁生成一個塊讀取請求具體包括:為所述位于硬盤緩存區的至少兩個數據頁中的每一個數據頁生成一個塊讀取請求。
結合第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述方法還包括:
根據所述多個數據頁的緩存位置,將所述多個數據頁中位于所述內核緩存區的數據頁的數據從所述內核緩存區讀取到用戶緩存區。
結合第一方面的第一種可能的實現方式,或第一方面的第二種可能的實現方式,或第一方面的第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述通過調度所述IO調度隊列中的所述至少兩個塊讀取請求,將所述數據讀請求所請求的數據從硬盤緩存區讀取到用戶緩存區,包括:
依次調度所述IO調度隊列中的塊讀取請求,將每一個塊讀取請求所請求的數據從所述硬盤緩存區讀取到在所述內核緩存區內為所述每一個塊讀取請求的數據頁分配的存儲空間,并從所述分配的存儲空間讀取到用戶緩存區。
結合第一方面,或第一方面的第一種可能的實現方式,或第一方面的第二種可能的實現方式,或第一方面的第三種可能的實現方式,或第一方面的第四種可能的實現方式,在第一方面的第五種可能的實現方式中,所述將所述至少兩個塊讀取請求一次性提交至硬盤的IO調度隊列后,所述方法還包括:掛起所述用戶進程;
所述將所述數據讀請求所請求的數據從硬盤緩存區讀取到用戶緩存區后,所述方法還包括:喚醒所述用戶進程。
第二方面,提供一種數據讀取裝置,所述裝置包括:
接收單元,用于接收用戶進程提交的數據讀請求;
生成單元,用于根據所述接收單元接收到的所述數據讀請求生成至少兩個塊讀取請求;
提交單元,用于將所述生成單元生成的所述至少兩個塊讀取請求一次性提交至硬盤的輸入輸出IO調度隊列;
讀取單元,用于通過調度所述IO調度隊列中的由所述提交單元提交的至少兩個塊讀取請求,將所述數據讀請求所請求的數據從硬盤緩存區讀取到用戶緩存區。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310267802.4/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





