[發明專利]一種磁盤內部的數據緩存方法及裝置在審
| 申請號: | 201611222457.2 | 申請日: | 2016-12-27 |
| 公開(公告)號: | CN106776375A | 公開(公告)日: | 2017-05-31 |
| 發明(設計)人: | 張向陽;師少飛 | 申請(專利權)人: | 東方網力科技股份有限公司 |
| 主分類號: | G06F12/0873 | 分類號: | G06F12/0873 |
| 代理公司: | 北京超凡志成知識產權代理事務所(普通合伙)11371 | 代理人: | 馬維麗 |
| 地址: | 100102 北京市朝陽區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 磁盤 內部 數據 緩存 方法 裝置 | ||
技術領域
本發明涉及數據存儲技術領域,具體而言,涉及一種磁盤內部的數據緩存方法及裝置。
背景技術
一般文件服務器或圖片服務器都會有代理服務讀取功能,也就是通過代理功能實現從其他服務器讀取文件的功能,比如從ftp、http等服務器上讀取。考慮到從這些服務器上讀取存在速度慢的問題,常見的如網絡不穩定、服務器負荷壓力大等情況,都可能會導致讀取性能低的問題。為了改善這個問題,服務器通常都會采用磁盤緩存文件的做法。常規的做法是直接在磁盤上創建文件副本并建立一個索引文件來記錄文件總量及訪問關系。這種方式建立的文件副本是1:1,當緩存的總量較大時(如:8G),而文件又相對較小時(如:10KB),就會產生過萬的文件數量,不僅讀取性能下降,還會產生不少磁盤碎片造成空間浪費。
另外一種磁盤緩存文件的做法是通過文件拼湊的形式組合成大文件,這種方式通常會在大文件中劃分連續的一塊區域來存儲一個文件,能夠保證順序讀寫,提升讀取速度。但這種方式有個嚴重的缺陷是不能支持隨機擦寫,比如一塊空間一旦被文件占用后,當此文件刪除后,空間也不能再次回收利用,造成很大的磁盤空間浪費,造成有限駐留空間內緩存的有效文件數據較少。
發明人在研究中發現,現有技術中的磁盤緩存文件的方法均不理想,針對上述兩種磁盤緩存文件的缺陷,目前尚未提出一種較好的解決方式。
發明內容
有鑒于此,本發明實施例的目的在于提供一種磁盤內部的數據緩存方法及裝置,其通過創建用于映射磁盤的存儲文件的內存映射文件,并對該內存映射文件的緩存空間進行重復擦寫及回收利用,提升了緩存空間的利用率,使緩存空間利用最大化,同時提升了緩存文件的讀寫速度。
第一方面,本發明實施例提供了一種磁盤內部的數據緩存方法,包括:
創建用于映射磁盤的存儲文件的內存映射文件,所述內存映射文件對應有虛擬地址空間的空閑內存區域;所述內存映射文件預先被劃分為多個空閑存儲塊;
根據預存的緩存文件的大小,計算所述內存映射文件中用于存儲所述緩存文件的所述空閑存儲塊的第一數量;
從所述內存映射文件中抽取所述第一數量的所述空閑存儲塊,并將所述空閑存儲塊設置為待用存儲塊;
通過所述待用存儲塊存儲所述緩存文件,得到存儲文件。
結合第一方面,本發明實施例提供了第一方面的第一種可能的實施方式,其中,所述的磁盤內部的數據緩存方法,還包括:
實時檢測所述內存映射文件對應的所述空閑內存區域的大小;
在檢測到所述空閑內存區域的大小小于第一設定閾值時,根據第二設定閾值,計算待釋放的所述存儲文件的第三數量;其中,所述第二設定閾值大于所述第一設定閾值;
將所述第三數量的所述存儲文件作為空閑存儲塊釋放到所述內存映射文件中。
結合第一方面的第一種可能的實施方式,本發明實施例提供了第一方面的第二種可能的實施方式,其中,實時檢測所述內存映射文件對應的所述空閑內存區域的大小,包括:
實時獲取所述內存映射文件中所述空閑存儲塊的第二數量;
根據所述第二數量,計算所述內存映射文件中所述空閑內存區域的大小。
結合第一方面的第一種可能的實施方式,本發明實施例提供了第一方面的第三種可能的實施方式,其中,所述的磁盤內部的數據緩存方法,還包括:
每檢測到一個所述存儲文件時,將所述存儲文件存儲的所述緩存文件的文件名存儲到預先建立的熱度鏈表的頭部;其中,所述熱度鏈表包括:用于存儲所述文件名的第一文件名存儲區。
結合第一方面的第三種可能的實施方式,本發明實施例提供了第一方面的第四種可能的實施方式,其中,所述的磁盤內部的數據緩存方法,還包括:
每檢測到一個所述存儲文件時,將所述存儲文件及其存儲的所述緩存文件的文件名存儲到預先建立的數據緩存表中;其中,所述數據緩存表包括:用于存儲所述存儲文件的存儲文件存儲區和用于存儲所述文件名的第二文件名存儲區。
結合第一方面的第四種可能的實施方式,本發明實施例提供了第一方面的第五種可能的實施方式,其中,將所述第三數量的所述存儲文件作為空閑存儲塊釋放到所述內存映射文件中,包括:
根據所述熱度鏈表中所述第一文件名存儲區存儲的所述文件名從后到前的排序順序,獲取所述第三數量的所述文件名作為待釋放文件名;
根據所述待釋放文件名從所述數據緩存表中查找匹配的所述存儲文件,作為待釋放存儲文件;
將所述待釋放存儲文件作為空閑存儲塊釋放到所述內存映射文件中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東方網力科技股份有限公司,未經東方網力科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611222457.2/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





