精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于LRU-K模型如何實現高效的元數據緩存?

冬至配餃子 ? 來源:焱融科技 ? 作者:焱融科技 ? 2023-06-29 15:05 ? 次閱讀

對于存儲來說,性能是繞不開的話題。當提到性能,可靠、高效的緩存策略是極其重要的。在計算機領域,緩存技術一般是指,用一個更快的存儲設備存儲一些經常用到的數據,供用戶快速訪問。用戶不需要每次都與慢設備去做交互,因此可以提高訪問效率。凡是位于速度相差較大的兩種硬件之間,用于協調兩者數據傳輸速度差異的結構,均可稱之為緩存。緩存是提升訪問性能的一個重要技術。緩存通過減少系統對數據庫的訪問量來提高系統性能。

存儲層使用緩存的優勢

目前緩存分為兩種模式,一種是文件緩存,一種是內存緩存,文件緩存即緩存數據存放在服務器的硬盤空間中,內存緩存即緩存數據存放在服務器的內存空間中。在分布式文件存儲中,客戶端就能提供文件緩存,那為什么存儲層還需要緩存呢?以下是存儲層使用緩存的優勢因素:

  1. 客戶端資源有限,無法緩存海量的文件,而后端存儲則可以線性擴展,可以緩存更多的數據。
  2. 后端存儲可以根據整個存儲情況提供更全面的緩存,比如說多個客戶端同時訪問熱點。
  3. 分布式文件存儲中,客戶端散布各個終端節點,存儲層的緩存可以保證一致性,更加安全可靠。
  4. 存儲層可以根據我們數據在物理機上的分布特點,靈活調配緩存大小和策略。

存儲層的緩存能力是提升分布式存儲性能非常重要的部分,今天我們主要討論利用 LRU-K 模型如何實現高效的元數據緩存?

LRU-K 模型的優勢及運作模式

內存中的讀寫速度很快,基于此很多緩存技術都喜歡將數據存在內存中,但是內存空間是有限的,當到達一定量后需要將一些不常用的緩存數據刪除或者落盤。緩存淘汰算法順應而生,其中 LRU、LRU-K 就是比較常見的,目的都是為了高效地維護緩存數據。

LRU 的基本思想是如果數據最近被訪問過,那么將來被訪問的幾率更高。我們實現 LRU 時,要維護一個隊列,第一次訪問的數據直接入隊,重復訪問的緩存,將該數據移至隊尾,需要刪除時刪除隊頭的數據,這樣就能保持隊列越往后,數據再次被訪問的可能性就越大。LRU 緩存變換之快這是它的優點也是它的缺點,因為只需要一次訪問就能成為最新鮮的數據,當出現很多偶發數據時,這些偶發的數據也會被當作最新鮮的,從而成為緩存。但其實這些偶發數據以后并不會被經常訪問到。在文件系統里,這個現象會更加明顯,絕大部分文件/目錄只在業務過程中單次去查詢,而熱點往往集中在少量文件。

LRU-K 的主要目的是為了解決 LRU 算法"緩存污染"的問題,其核心思想是將"最近使用過 1 次"的判斷標準擴展為"最近使用過 K 次"。LRU-K 提供兩個 LRU 隊列,一個是訪問計數隊列,一個是標準的 LRU 隊列,兩個隊列都按照 LRU 規則淘汰數據。當訪問一個數據時,數據先進入訪問計數隊列,當數據訪問次數超過 K 次后,才會進入標準 LRU 隊列。標準的 LRU 算法相當于 LRU-1;LRU-K 具有 LRU 的優點,同時能夠避免 LRU 的缺點,實際應用中 LRU-2 是綜合各種因素后最優的選擇,LRU-3 或者更大的 K 值命中率會高,但適應性差,需要大量的數據訪問才能將歷史訪問記錄清除掉。

目錄的結構是樹形的,這就決定了我們不能平等地去看待每一個目錄,越接近樹頂的目錄,它的訪問概率越高,訪問頻次越高,這些是最值得保存的數據。所以 LRU-K 更適合海量目錄場景下的緩存淘汰。

采用 LRU-K 模型實現目錄的緩存:

  1. 數據第一次被訪問,加入到訪問歷史列表;
  2. 如果數據在訪問歷史列表里后沒有達到 K 次訪問,則按照一定規則(LRU)淘汰;
  3. 當訪問歷史隊列中的數據訪問次數達到 K 次后,將數據索引從歷史隊列刪除,將數據移到緩存隊列中,并緩存此數據,緩存隊列重新按照時間排序;
  4. 緩存數據隊列中被再次訪問后,重新排序;
  5. 需要淘汰數據時,淘汰緩存隊列中排在末尾的數據,即:淘汰“倒數第 K 次訪問離現在最久”的數據。

1.PNG

存儲層使用緩存加速元數據性能是一種有效的方法,它可以提高分布式文件存儲的訪問效率和一致性,同時減少對數據庫的壓力。LRU-K 模型是一種適合海量目錄場景下的緩存淘汰算法,它可以避免緩存污染的問題,保證緩存數據的熱度和新鮮度。焱融分布式文件存儲 YRCloudFile 提供元數據服務的組件是 MDS,在海量目錄百億級文件規模場景下實現了高效的存儲層的元數據緩存,能夠提供卓越的性能和可靠性,滿足用戶對文件存儲的各種需求,實測性能成倍提升,為用戶提供了高性能、高可靠、高擴展的存儲服務。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7452

    瀏覽量

    163605
  • 緩存器
    +關注

    關注

    0

    文章

    63

    瀏覽量

    11652
  • MDS
    MDS
    +關注

    關注

    0

    文章

    5

    瀏覽量

    8042
收藏 人收藏

    評論

    相關推薦

    LRU緩存模塊最佳實踐

    LRU(Least Recently Used)是一種緩存替換算法,它的核心思想是當緩存滿時,替換最近最少使用的數據。在實際應用中,LRU
    的頭像 發表于 09-30 16:47 ?862次閱讀

    Redis的LRU實現和應用

    在編程中,計數器是一種基本但強大的工具,用于跟蹤和管理數據和資源。本文將深入探討不同類型的計數器的應用,從Redis的LRU(最近最少使用)緩存淘汰算法的實現,到如何在內存受限的環境中
    的頭像 發表于 12-15 09:24 ?570次閱讀

    【原創】Android開發—Lru核心數據結構實現突破緩存框架

    【原創】Android開發—Lru核心數據結構實現突破緩存框架回復即可獲取下載鏈接[hide=d15]鏈接:http://pan.baidu.com/s/1c2BfjsW 密碼:bta
    發表于 06-21 16:58

    高速緩存/海量緩存的設計實現

    。  3、海量緩存的設計實現  本系統使用了兩片25616bit容量的SRAM作為高速緩存,系統中的4個通道可同時存儲每通道128點采樣
    發表于 12-04 15:59

    架構設計應用級緩存回收策略

      緩存,筆者的理解是讓數據更接近于使用者,目的是讓訪問速度更快。工作機制是先從緩存中讀取數據,如果沒有,再從慢速設備上讀取實際數據并同步到
    發表于 01-14 17:08

    高速數據采集系統中高速緩存與海量緩存實現

    探討了高速數據采集系統中高速采樣緩存的重要性和實現途徑,闡述了基于ADSP-21065L的并行多通道數據采集板上高速采樣緩存的設計與電路結構
    發表于 04-23 17:08 ?23次下載

    基于PC的多通道自帶緩存數據采集系統的設計與實現

    基于PC的多通道自帶緩存數據采集系統的設計與實現:本文描述了一自帶緩存數據采集系統, 并將本系統所采用的技術與通用的
    發表于 10-11 11:12 ?12次下載

    Ceph文件系統的數據緩存備份

    針對Ceph文件系統數據寫操作響應時間較長的問題,提出一種對數據緩存進行備份的方案。該方案采用多個
    發表于 02-08 15:38 ?0次下載
    Ceph文件系統的<b class='flag-5'>數據</b><b class='flag-5'>緩存</b>備份

    基于OpenFlow分組緩存管理模型

    基于OpenFlow的軟件定義網絡(SDN)技術通過在OpenFlow交換機中建立有效的緩存模型,能夠大幅減少控制平面和數據平面的通信負載,但整條數據流的
    發表于 02-26 15:35 ?1次下載
    基于OpenFlow分組<b class='flag-5'>緩存</b>管理<b class='flag-5'>模型</b>

    適用于命名數據網絡的緩存內容分類模型

    的 Diffserv模型,提出一個適用于NDN的緩存內容分類模型,并給出同時考慮內容分類、路由器本地流行度和內容下載時延的概率緩存算法 Diffcache。實驗結果表明,該算法可
    發表于 05-12 11:33 ?4次下載

    基于高斯混合模型的Web代理服務器緩存

    基于高斯混合模型的Web代理服務器緩存
    發表于 06-23 16:46 ?17次下載

    設計并實現一個滿足LRU約束的數據結構

    LRUCache(int capacity)` 以 **「正整數」** 作為容量 `capacity` 初始化 `LRU` 緩存
    的頭像 發表于 06-07 17:05 ?959次閱讀
    設計并<b class='flag-5'>實現</b>一個滿足<b class='flag-5'>LRU</b>約束的<b class='flag-5'>數據</b>結構

    Redis的LRU與LFU算法實現

    Redis是一款基于內存的高性能NoSQL數據庫,數據緩存在內存里, 這使得Redis可以每秒輕松地處理數萬的讀寫請求。
    的頭像 發表于 07-11 09:48 ?1071次閱讀
    Redis的<b class='flag-5'>LRU</b>與LFU算法<b class='flag-5'>實現</b>

    redis的lru原理

    Redis是一種基于內存的鍵值數據庫,它使用了LRU(Least Recently Used)算法來進行緩存數據淘汰。LRU算法的核心思想
    的頭像 發表于 12-05 09:56 ?604次閱讀

    關于LRU(Least Recently Used)的邏輯實現

    Used)算法是一種常用的緩存淘汰策略,其核心思想是:如果一個數據在最近一段時間內沒有被訪問到,那么在未來它被訪問的可能性也很小。因此,當緩存滿了的時候,最久未使用的數據會被淘汰。
    的頭像 發表于 11-12 11:47 ?166次閱讀
    關于<b class='flag-5'>LRU</b>(Least Recently Used)的邏輯<b class='flag-5'>實現</b>