本發明專利技術公開了一種提高分布式緩存的命中率并減少固態硬盤磨損的方法,結合緩存數據分布特性和固態硬盤特性優化緩存性能并降低成本。它能根據應用場景分配內存緩存區并將SSD劃分為連續分布的與內存緩存區等大的Cage,內存緩存區緩存新數據,內存緩存區的數據達到上限時將內存緩存區所有數據寫入Cage,擦除內存緩存區進行新的數據緩存。替換算法通過分析內存緩存區中的數據的訪問頻度分布,設定Cage中替換算法參數,替換算法會根據訪問情況對緩存數據的替換優先級進行調整以區分出熱門數據。當SSD的空閑空間不足時,替換算法會對Cage進行順序擦除,擦除Cage時保留熱門數據以提高命中率,降低了帶寬消耗,順序的批量擦寫能有效降低SSD的寫放大。
【技術實現步驟摘要】
本專利技術屬于云計算環境下分布式緩存性能優化領域,具體涉及,用于結合用戶訪問行為和硬件特性,實現高命中率以及低SSD磨損的緩存機制。
技術介紹
云計算環境下,為了應對海量數據與用戶請求帶來的挑戰,解決傳統數據庫面臨的大規模數據訪問瓶頸,分布式緩存技術被引入,為用戶提供高性能、高可用、可伸縮的數據緩存服務。企業使用高速內存作為數據對象的存儲介質,數據以key/value形式存儲。固態硬盤(Solid State Drive,SSD)是用固態電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(包括FLASH芯片和DRAM芯片)組成。固態硬盤在接口的規范和定義、功能及使用方法上與普通硬盤完全相同,在產品外形和尺寸上也完全與普通硬盤一致。固態硬盤具有傳統機械硬盤不具備的快速讀寫、質量輕、能耗低以及體積小等特點。但其價格仍較為昂貴,容量較低,一旦硬件損壞,數據較難恢復,并且固態硬盤的耐用性(壽命)相對較短。由于固態硬盤閃存的擦寫次數有限,34nm的MLC閃存芯片壽命約是5000次P/E,而25nm的壽命約是3000次P/E。SSD固件算法的優化指標之一是提供更少的不必要寫入量。緩存的性能還體現在替換算法效率上,優化替換算法的目的是提高緩存的命中率和比特命中率。影響算法效率的因素有緩存大小、緩存數據大小、緩存數據不命中開銷、時間局部性以及長尾效應等。目前商業系統通常使用FIFO替換策略來對SSD緩存服務器中的內容進行更新,然而,通過對緩存內容的訪問情況進行分析發現FIFO策略會降低訪問命中率,導致緩存服務器需要更多的請求后臺數據中心存儲,加大帶寬需求,增大了后臺數據中心的I/O壓力。采用LRU等結合更多優化因素的替換策略能夠有效的提高緩存命中率以及比特命中率。但是,SSD天生的缺陷一一寫放大,決定了 FIFO替換策略能夠將寫放大降到最低,其它的替換策略例如LRU、LFU都會造成嚴重的寫放大,縮短了 SSD的使用壽命。企業從成本上考慮,FIFO能延長SSD的使用壽命,減少SSD的購買,盡管FIFO會使命中率降低,現有的緩存系統依然使用FIFO替換策略。
技術實現思路
基于以上原因,本專利技術提出了一個結合數據訪問特性和SSD特性的緩存替換算法,它利用數據訪問的時間局部性以及訪問熱度特性,實時動態調整緩存數據的替換優先級,在降低SSD與放大的同時盡可能提尚訪冋命中率。為了實現上述目的,本專利技術提供了,包括如下步驟:(I)進行緩存系統初始化,設定內存緩存區大小并分配內存空間,按照內存緩沖區大小將SSD按物理地址順序且等量地劃分為X個Cage,其中所述緩存系統包括內存緩存區和SSD緩存區;(2)緩存系統接收并處理用戶訪問請求,在緩存系統中查詢請求數據是否已緩存,如果請求數據在緩存系統中有副本,則將數據返回給用戶;如果緩存系統中沒有對應的請求數據,則轉步驟(3);(3)如果請求數據不在緩存系統中,緩存系統需要從數據中心獲取請求數據并緩存到緩存系統中;(4)當請求數據在緩存系統中命中時,緩存數據的冷熱程度會改變,需要對已緩存的數據優先級隊列進行調整;(5)當SSD緩存空間滿,沒有空閑Cage,需要擦除Cage以保存新數據,并保留要被擦除的Cage中熱門數據。本專利技術方法與現有技術相比,具有以下有益效果:(I)相比廣泛使用的FIFO替換算法,本專利技術通過保留熱門數據,避免熱門數據再次訪問時的不命中,提高緩存的命中率,降低緩存系統的帶寬開銷。(2)相比LRU、LFU等算法,本專利技術利用順序寫的特性降低了數據擦除時的寫放大,降低SSD的磨損。(3)本專利技術具有良好的擴展性和維護性,對系統擴容時不會增加額外的開銷,SSD故障失效時更換新SSD不會影響系統運行。【附圖說明】圖1為本專利技術提高分布式緩存的命中率并減少固態硬盤磨損的方法流程圖;圖2為本專利技術的緩存替換算法的原理圖。【具體實施方式】為了使本專利技術的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本專利技術進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本專利技術,并不用于限定本專利技術。此外,下面所描述的本專利技術各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。本專利技術提出了一種動態調節的緩存替換算法,它能根據應用場景分配內存緩存區大小并將SSD劃分為連續分布的與內存緩存區等大的Cage,內存緩存區的數據達到上限時將內緩存區數據寫入Cage。替換算法通過分析內存緩存區中的緩存數據的訪問頻度分布,設定寫入數據的Cage替換算法層數k并將數據按訪問頻度優先排序,根據訪問情況對緩存數據的替換優先級進行調整,區分出熱門數據。在擦除Cage時,保留熱門數據避免熱門數據再次被訪問時的不命中,提高緩存的命中率,減少緩存服務器與后臺數據中心的數據交換,降低了帶寬消耗。當SSD的空閑空間不足時,替換算法會選擇最老的Cage進行擦除,Cage的擦寫操作是順序的,順序的批量擦寫能有效降低SSD的寫放大。如圖1所示,本專利技術提高分布式緩存的命中率并減少固態硬盤磨損的方法,具體包括如下步驟:(I)進行緩存系統初始化,設定內存緩存區大小并分配內存空間,按照內存緩沖區大小將SSD按物理地址順序且等量地劃分為X個Cage,其中所述緩存系統包括內存緩存區和SSD緩存區。其主要包括如下幾個子步驟:(1-1)內存緩存區分配。根據設定的內存緩存區大小,劃分一部分內存區域用來存儲緩存數據,統計內存緩存區中數據的大小、數量、訪問頻度。內存緩存區保存的數據分兩種:一種是將緩存系統未緩存的數據,從數據中心獲取并緩存到內存緩存區;另一種是在Cage被擦除時,將Cage中的熱門數據寫到內存緩存區。(1-2)如圖2,將SSD劃分為X個大小相等的Cage,按照順序將每個Cage被標記為F_0、F_1、F_2、……、F_(X-1),其中Cage的擦寫是順序進行的。當內存緩存區中的數據總量達到內存緩存區容量上限,執行步驟(5)。(2)緩存系統接收并處理用戶訪問請求,在緩存系統中查詢請求數據是否已緩存,如果請求數據在緩存系統中有副本,則將數據返回給用戶;如果緩存系統中沒有對應的請求數據,則轉步驟(3);具體地:(2-1)如果在緩存系統中有請求數據的副本,則將數據返回給用戶。并且如果請求數據在內存緩存區中,更新內存緩存區中的訪問頻度記錄,如果請求的數據在SSD中,轉到步驟(4)更新緩存數據的替換隊列;(2-2)如果緩存系統中沒有對應的請求數據,或者緩存的請求數據因超時或者原始數據被修改等原因而失效,執行步驟(3)從數據中心獲取請求數據并緩存到緩存系統中。(3)如果請求數據不在緩存系統中,緩存系統需要從數據中心獲取請求數據并緩存到緩存系統中,處理流程如下:(3-1)查詢內存緩存區中的數據是否達到了內存緩存區容量上限,如果沒有達到上限,直接從數據中心獲取請求數據并存入內存緩存區,并更新內存緩存區中數據的大小、數量和訪問頻度記錄,將請求數據返回給用戶。(3-2)當內存緩存區中的數據達到了內存緩存區的容量上限,需要將內存緩存區中的數據寫入SSD。如果上一個被寫的Cage為F_C,此時要將內存緩存區數據寫入編號為F_的Cage。如果編號為F_的Cage為空,直接將內存緩存區數據寫入該Cage,并清空內存緩存區。如果編號本文檔來自技高網...

【技術保護點】
一種提高分布式緩存的命中率并減少固態硬盤磨損的方法,其特征在于,所述方法包括如下步驟:(1)進行緩存系統初始化,設定內存緩存區大小并分配內存空間,按照內存緩沖區大小將SSD按物理地址順序且等量地劃分為X個Cage,其中所述緩存系統包括內存緩存區和SSD緩存區;(2)緩存系統接收并處理用戶訪問請求,在緩存系統中查詢請求數據是否已緩存,如果請求數據在緩存系統中有副本,則將數據返回給用戶;如果緩存系統中沒有對應的請求數據,則轉步驟(3);(3)如果請求數據不在緩存系統中,緩存系統需要從數據中心獲取請求數據并緩存到緩存系統中;(4)當請求數據在緩存系統中命中時,緩存數據的冷熱程度會改變,需要對已緩存的數據優先級隊列進行調整;(5)當SSD緩存空間滿,沒有空閑Cage,需要擦除Cage以保存新數據,并保留要被擦除的Cage中熱門數據。
【技術特征摘要】
【專利技術屬性】
技術研發人員:金海,廖小飛,李渠,
申請(專利權)人:華中科技大學,
類型:發明
國別省市:湖北;42
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。