[發明專利]文件存儲方法及裝置在審
| 申請號: | 201710063006.7 | 申請日: | 2017-01-24 |
| 公開(公告)號: | CN106897391A | 公開(公告)日: | 2017-06-27 |
| 發明(設計)人: | 丁偉;龐傳普;陳連增;柳春鳳 | 申請(專利權)人: | 北京百悟科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京康信知識產權代理有限責任公司11240 | 代理人: | 韓建偉,張永明 |
| 地址: | 100102 北京市朝*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 文件 存儲 方法 裝置 | ||
技術領域
本發明涉及數據處理領域,具體而言,涉及一種文件存儲方法及裝置。
背景技術
隨著短信業務的快速發展,公司業務發展也從單機模式發展為集群模式,用于提高業務接口速度,然而采用上述方式導致數據庫瓶頸越來越明顯,進而又引入了高速緩存機制緩解數據庫的壓力。可是由于業務存在短時峰值的問題會引起高速讀寫進而導致緩存持久化頻繁,對業務峰值時的處理效率產生很大影響,如果采用關閉持久化的方式又可能會引起故障數據的恢復問題。
針對上述問題,相關技術中采用將緩存中的數據序列化為小文件的方式進行數據緩存和故障數據恢復,并且在接口程序設定數量閾值及時間閾值,在緩存中的數據的任何一項達到閾值時,將緩存中的內容提取并序列化后存入一個小文件中,然后由其他線程根據目錄中的文件記錄,將文件數據的異步處理入庫,通過該方式可以成功的將數據庫的訪問壓力降低三至四個數量級,但是會產生是文件系統的索引文件暴增的問題。在實際工作中,也曾出現過系統的索引文件耗盡的情況,從而導致了文件緩存目錄的訪問時間開銷過大。對于該問題,公司采取縮短數據備份刪除任務的周期,但是有時數據備份刪除任務耗時較長,而且硬盤故障率也一直居高不下。
針對上述相關技術中文件存儲的性能較低的問題,目前尚未提出有效的解決方案。
發明內容
本發明實施例提供了一種文件存儲方法及裝置,以至少解決相關技術中文件存儲的性能較低的技術問題。
根據本發明實施例的一個方面,提供了一種文件存儲方法,包括:從緩存中獲取預定數量的數據;將獲取到的所述數據根據第一文件存儲結構寫入第一文件中;將所述第一文件根據所述第二文件存儲結構寫入到第二文件中,其中,所述第二文件能夠寫入多個所述第一文件;將所述第二文件進行存儲。
進一步地,將所述第一文件根據所述第二文件存儲結構寫入到所述第二文件中包括:獲取所述第二文件存儲結構中的寫入位置數值,其中,所述寫入位置數值用于所述第二文件中能夠寫入所述第一文件的起始位置;根據所述第一文件的大小從所述寫入位置數值鎖定用于存儲所述第一文件的數據長度區域;在鎖定成功后,將所述第一文件寫入到所述數據長度區域;在寫入成功后,進行鎖定釋放并且更新所述寫入位置數值。
進一步地,還包括:在鎖定失敗之后,等待預定時長后,重新根據所述第一文件的大小從所述寫入位置數值鎖定用于存儲所述第一文件的數據長度區域。
進一步地,將所述第二文件進行存儲之后,所述方法還包括:獲取所述第二文件;根據所述第二文件存儲結構中的讀取位置數值讀取所述第一文件存儲結構,其中,所述第一文件存儲中結構中至少包括所述第一文件的文件長度,所述第二文件包括多個所述第一文件;根據所述第一文件的文件長度從所述第二文件中讀取所述第一文件。
進一步地,在根據所述第二文件存儲結構中的讀取位置數值讀取所述第一文件存儲結構之前,所述方法還包括:根據所述讀取位置數值對所述第二文件進行鎖定;在從所述第二文件中讀取所述第一文件成功之后,所述方法還包括:進行鎖定釋放。
進一步地,在從所述第二文件中讀取所述第一文件之后,所述方法還包括:根據所述第一文件的文件長度更新所述讀取位置數值。
進一步地,在從所述第二文件中讀取所述第一文件之后,所述方法還包括:修改所述第二文件中的所述第一文件存儲結構中的刪除標記,其中,修改后的所述刪除標記用于指示所述第一文件已經被讀取。
進一步地,將獲取到的所述數據寫入所述第一文件中包括:將所述數據進行序列化;將序列化后的數據進行壓縮;將壓縮后的數據寫入所述第一文件中。
根據本發明實施例的另一方面,還提供了一種文件存儲裝置,包括:第一獲取單元,用于從緩存中獲取預定數量的數據;第一寫入單元,用于將獲取到的所述數據根據第一文件存儲結構寫入第一文件中;第二寫入單元,用于將所述第一文件根據所述第二文件存儲結構寫入到第二文件中,其中,所述第二文件能夠寫入多個所述第一文件;存儲單元,用于將所述第二文件進行存儲。
進一步地,所述第二寫入單元包括:獲取模塊,用于獲取所述第二文件存儲結構中的寫入位置數值,其中,所述寫入位置數值用于所述第二文件中能夠寫入所述第一文件的起始位置;第一鎖定模塊,用于根據所述第一文件的大小從所述寫入位置數值鎖定用于存儲所述第一文件的數據長度區域;第一寫入模塊,用于在鎖定成功后,將所述第一文件寫入到所述數據長度區域;更新模塊,用于在寫入成功后,進行鎖定釋放并且更新所述寫入位置數值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京百悟科技有限公司,未經北京百悟科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710063006.7/2.html,轉載請聲明來源鉆瓜專利網。





