[發明專利]一種基于固態硬盤的讀緩存管理方法及裝置在審
| 申請號: | 201410844432.0 | 申請日: | 2014-12-30 |
| 公開(公告)號: | CN104572491A | 公開(公告)日: | 2015-04-29 |
| 發明(設計)人: | 柴云鵬;孫東旺 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 廣州三環專利代理有限公司 44202 | 代理人: | 郝傳鑫;熊永強 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 固態 硬盤 緩存 管理 方法 裝置 | ||
技術領域
本發明涉及計算機領域,尤其涉及一種基于固態硬盤的讀緩存管理方法及裝置。
背景技術
目前為了改進磁盤系統的輸入/輸出性能,例如減小請求響應時間、提高吞吐率等,在大多數存儲系統中,在磁盤系統的上層采用緩存技術來滿足性能提升的需求。
傳統的存儲系統中,數據庫系統一般以DRAM(Dynamic?Random?Access?Memory,動態隨機存取存儲器)作為緩存介質,DRAM具有讀寫平衡和寫入耐久性好的優點,不需要考慮DRAM寫入量,可以頻繁的將數據寫入DRAM中。
為了降低緩存介質的成本,越來越多的存儲系統中采用SSD(Solid?State?Drives,固態硬盤)作為緩存介質,SSD具有容量更大、成本更低和非易失性的優點,但是SSD具有可擦寫次數限制的問題。運用傳統緩存替換算法(例如LRU等)管理SSD時,由于緩存介質缺失驅動數據更新,新來的讀請求未命中時會導致SSD中有數據塊被刪除,如果不斷有新來的讀請求未命中,SSD中就會有數據塊不斷的被踢出,SSD中的數據塊的停留時間會很短,然而這些被踢出的數據塊可能在一定時間之后有被重新寫入SSD,這樣頻繁的數據擦寫操作會減少SSD的使用壽命,增加成本和維護難度。
發明內容
本發明實施例所要解決的技術問題在于,提供一種基于SSD的讀緩存管理方法和裝置。可減少SSD的擦寫次數,延長SSD的使用壽命。
為了解決上述技術問題,本發明實施例第一方面提供了一種基于SSD的讀緩存管理方法,包括:
接收讀請求,并判斷所述讀請求是否命中所述第一隊列和所述第二隊列;
若二者均未命中,根據緩存替換算法選擇并刪除所述第一隊列中的淘汰數據塊;其中,所述淘汰數據塊為已存儲狀態;
若所述淘汰數據塊為已存儲狀態,將所述淘汰數據塊插入所述第二隊列中;
從下級存儲介質中確定所述讀請求對應的目標數據塊,將所述目標數據塊插入所述第一隊列中;其中,所述目標數據塊為未存儲狀態。
結合第一方面,在第一種可能的實現方式中,還包括:
若所述淘汰數據塊為未存儲狀態,將所述淘汰數據塊從第一隊列中刪除,并從所述SSD中刪除。
結合第一方面,在第二種可能的實現方式中,還包括:
若所述讀請求未命中所述第一隊列但命中所述第二隊列,刪除所述第二隊列中所述讀請求對應的命中數據塊;
將所述命中數據塊插入所述第一隊列中。
結合第一方面的第一種或第二種可能的實現方式,在第三種可能的實現方式中,還包括:
計算所述第二隊列中的待處理數據塊的空閑時間;其中,所述待處理數據塊為所述第二隊列中的數據塊的任意一個;
當所述待處理數據塊持續未訪問的時間大于所述待處理數據塊的空閑時間時,將所述待處理數據塊從所述第二隊列中刪除;
獲取所述待處理數據塊的身份標識,并將所述待處理數據塊的身份標識插入到第三隊列中。
結合第一方面的第二種可能的實現方式,在第四種可能的實現方式中,述計算所述所述第二隊列中的待處理數據塊的空閑時間包括:
統計所述待處理數據塊在所述第一隊列中的命中次數M和所述第二隊列中的命中次數N;
根據所述命中次數M和所述命中次數N計算所述待處理數據塊的空閑時間。
結合第一方面的第二種可能的實現方式,在第五種可能的實現方式中,所述將所述淘汰數據塊插入所述第二隊列中包括:
獲取所述淘汰數據塊的身份信息;
若所述淘汰數據塊的身份信息不在所述第三隊列中,將所述淘汰數據塊插入所述第二隊列中;
若所述淘汰數據塊的身份信息在所述第三隊列中,判斷所述淘汰數據塊的淘汰時長是否大于預設時間閾值,若為是,將所述淘汰數據塊插入所述第二隊列中。
結合第一方面至第五種可能的實現方式中的任意一種,在第六種可能的實現方式中,所述當所述待處理數據塊持續未訪問的時間大于所述待處理數據塊的空閑時間時,將所述待處理數據塊從所述第二隊列中刪除之后,還包括:
搜索所述第一隊列中首個未存儲狀態的數據塊;
將所述首個未存儲狀態的數據塊寫入所述SSD中,并在寫入操作完成后將該數據塊設置為已存儲狀態;或者
確定所述第一隊列中前K位未存儲狀態的數據塊;其中K為大于0的整數;
將所述K個數據塊中訪問量最大的數據塊寫入所述SSD,并在寫入操作完成后將所述訪問量最大的數據塊設置為已存儲狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司;,未經華為技術有限公司;許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410844432.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種實現自定義鼠標按鍵多擊功能的方法及系統
- 下一篇:一種信息提醒方法和裝置





