[發明專利]一種文件加載方法和裝置有效
| 申請號: | 201610399257.8 | 申請日: | 2016-06-07 |
| 公開(公告)號: | CN107480150B | 公開(公告)日: | 2020-12-08 |
| 發明(設計)人: | 黃碩;劉俊峰;姚文輝;朱家稷 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F16/172 | 分類號: | G06F16/172;G06F16/182 |
| 代理公司: | 北京安信方達知識產權代理有限公司 11262 | 代理人: | 解婷婷;龍洪 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 文件 加載 方法 裝置 | ||
1.一種文件加載方法,應用于文件加載裝置,包括:
建立磁盤文件的內存映射文件,從所述內存映射文件中順序讀取數據,且向操作系統多次發送預讀取通知,每次通知所述操作系統將所述磁盤文件中指定位置和指定數據量的數據預讀取到所述內存映射文件對應的內存中;
按照數據的存儲格式,將從所述內存映射文件讀取的數據存儲到內存最終的數據結構中。
2.如權利要求1所述的方法,包括:
所述向操作系統多次發送預讀取通知,包括:
從所述內存映射文件中順序讀取數據時,每次數據讀取位置到達設定的預讀位置時,向所述操作系統發送一次預讀取通知。
3.如權利要求2所述的方法,包括:
所述預讀位置按照以下方式逐次設定:
每次數據讀取位置到達最近一次設定的預讀位置時,向所述操作系統發送一次預讀取通知,并對預讀位置進行重新設定,重新設定的預讀位置在所述操作系統根據此次預讀取通知所預讀取的數據在所述內存映射文件中的結束位置之前。
4.如權利要求3所述的方法,包括:
所述重新設定的預讀位置根據下式確定:
Pa=Pb+Ps
其中,Pa為重新設定的預讀位置;Pb為所述指定位置,Pb等于當前的數據讀取位置或最近一次設定的預讀位置;Ps等于所述指定數據量減去指定的預讀提前量得到的差。
5.如權利要求3或4所述的方法,包括:
所述方法還包括:
記錄最近三次設定的預讀位置并不斷更新;每次數據讀取位置到達最近一次設定的預讀位置時,在對預讀位置進行重新設定之前,通知所述操作系統對最近三次設定的預讀位置中前兩次設定的預讀位置之間的內存區域進行清理。
6.如權利要求1-4中任一所述的方法,包括:
所述指定數據量小于等于M/2+AHEAD且大于等于M/2,其中,M為用戶指定的最大內存占用量,AHEAD為用戶指定的預讀提前量。
7.如權利要求1-4中任一所述的方法,其特征在于:
按照數據的存儲格式,將從所述內存映射文件讀取的數據存儲到內存最終的數據結構中,包括:
每次從所述內存映射文件讀取數據后,判斷讀取的所述數據的數據量是否小于所述磁盤文件壓縮塊解壓后的最小數據量:
如果是,按照數據的存儲格式,將讀取的所述數據存儲到最終的內存數據結構中;
如果否,先以多線程和異步的方式對讀取的所述數據進行解壓縮,再按照數據的存儲格式將解壓后的數據存儲到最終的內存數據結構中。
8.如權利要求1-4中任一所述的方法,其特征在于:
所述磁盤文件是分布式文件系統的元數據內存映像文件。
9.一種文件加載裝置,其特征在于,包括數據加載模塊、文件讀取模塊和內存管理模塊,其中:
所述數據加載模塊,用于不斷向所述文件讀取模塊發起讀取請求,按照數據的存儲格式,將得到的數據存儲到內存最終的數據結構中;
所述文件讀取模塊,用于建立磁盤文件的內存映射文件,接受所述數據加載模塊的讀取請求,從所述內存映射文件中順序讀取數據,并觸發所述內存管理模塊進行內存管理;
所述內存管理模塊,用于進行內存管理,所述內存管理包括:向操作系統多次發送預讀取通知,每次通知所述操作系統將所述磁盤文件中指定位置和指定數據量的數據預讀取到所述內存映射文件對應的內存中。
10.如權利要求9所述的裝置,其特征在于:
所述內存管理模塊向操作系統多次發送預讀取通知,包括:從所述內存映射文件中順序讀取數據時,每次數據讀取位置到達設定的預讀位置時,向所述操作系統發送一次預讀取通知。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610399257.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:問答系統中的答案提供方法及裝置
- 下一篇:一種跨平臺的互聯文檔ID生成方法





