[發明專利]一種文件加載方法和裝置有效
| 申請號: | 201610399257.8 | 申請日: | 2016-06-07 |
| 公開(公告)號: | CN107480150B | 公開(公告)日: | 2020-12-08 |
| 發明(設計)人: | 黃碩;劉俊峰;姚文輝;朱家稷 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F16/172 | 分類號: | G06F16/172;G06F16/182 |
| 代理公司: | 北京安信方達知識產權代理有限公司 11262 | 代理人: | 解婷婷;龍洪 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 文件 加載 方法 裝置 | ||
一種文件加載方法和裝置,包括:文件加載裝置建立磁盤文件的內存映射文件,從所述內存映射文件中順序讀取數據,且向操作系統多次發送預讀取通知,每次通知所述操作系統將所述磁盤文件中指定位置和指定數據量的數據預讀取到所述內存映射文件對應的內存中;文件加載裝置按照數據的存儲格式,將從所述內存映射文件讀取的數據存儲到內存最終的數據結構中。所述文件加載裝置包括數據加載模塊、文件讀取模塊和內存管理模塊模塊。本申請的文件加載方法和裝置可以提高文件的加載速度,還可以使加載過程中的內存使用量穩定可控。
技術領域
本發明涉及計算機領域,更具體地,涉及一種文件加載方法和裝置。
背景技術
在大規模分布式文件系統中,為了滿足海量客戶端的高并發低延遲的訪問需求,元數據服務器(Meta Server)通常將所有元數據均存放在內存中,同時通過記錄元數據操作日志(operation log)并定期產生元數據內存映像文件(checkpoint file)來實現元數據的持久化存儲。元數據內存映像文件通常包含多個數據區(data section)和一個文件頭(header)。數據區記錄了目錄路徑樹、文件表、數據副本位置等大量元數據,并對其中大塊的數據(例如超過4KB)進行了壓縮以節省空間;文件頭記錄了數據區的起始結束信息、壓縮參數等。
元數據內存映像文件的快速加載對于提升分布式文件系統的可用性和可運維性具有重要意義。當元數據服務器由于軟件升級、故障等原因重啟時,為了恢復內存中的元數據,需要加載最近產生的一個內存映像文件并重新執行該文件之后的所有操作日志。一方面,元數據內存映像文件的加載步驟是在元數據服務器升級和故障恢復的關鍵路徑之上,縮短加載用時能夠直接縮短元數據服務器的升級用時和故障恢復時間;另一方面,大規模場景下元數據服務器的內存映像文件數據量可達數百GB,加載步驟的耗時可占到元數據服務器重啟總時間的50%~80%以上,對升級用時和故障恢復時間影響顯著。
按照所使用的文件讀取方式,現有的文件加載方法可以分為兩種:
第一種是基于文件接口的方法:使用文件讀取接口(例如C語言的fread函數、Java語言File API)來順序讀取內存映像文件數據然后進行處理,將讀取到的元數據存儲到相應的內存結構中。在讀取線程調用文件讀取接口的過程中,文件庫(file library)會不斷調用操作系統的讀取函數將數據從磁盤加載到內存中,并拷貝到用戶或者庫自己的緩沖區(buffer)中。在讀取內存映像文件過程中,當遇到壓縮過的元數據塊時,可以同步的對其進行解壓縮然后處理,也可以將數據拷貝到臨時的內存緩沖區中然后交給專門的線程來異步解壓縮到最終的元數據內存結構中。
這種方法至少存在以下兩個影響加載速度的問題:1、文件庫內部實現的開銷:文件庫(例如,glibc file)為了維護內部buffer、保證并發安全等目的,在每次操作時需要進行多項狀態值更新和維護工作。當每次讀取的數據量很小時(例如,元數據文件中的數據塊之間存在很多的四字節的整數),庫內部的實現開銷在一次讀取操作的總開銷中的占比將很高,降低了CPU有效利用率,從而降低了數據讀取速度。2、內存拷貝開銷:當操作系統將數據從磁盤讀取到系統內核內存空間(kernel space)后,文件接口需要一次內存拷貝將數據從內核空間拷貝到讀取線程所在的用戶內存空間(user space)。在此之后,讀取線程才能進一步將這些數據解壓縮到最終的元數據內存結構中。雖然內存拷貝較快,但在幾百GB的大數據量時耗時明顯。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610399257.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:問答系統中的答案提供方法及裝置
- 下一篇:一種跨平臺的互聯文檔ID生成方法





