色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊如何實(shí)現(xiàn)一種閃存緩存設(shè)計(jì)

SSDFans ? 來(lái)源:SSDFans ? 2023-08-29 09:01 ? 次閱讀

01背景

許多web服務(wù)需要對(duì)數(shù)十億個(gè)小對(duì)象實(shí)現(xiàn)快速訪問(wèn),而每個(gè)小對(duì)象只有幾百個(gè)字節(jié)。為了實(shí)現(xiàn)這一點(diǎn)同時(shí)考慮實(shí)際生產(chǎn)效益,緩存系統(tǒng)必須做到同時(shí)低成本,大容量與高性能。DRAM與NVM雖然性能好,但容量小,價(jià)格過(guò)于高昂。而閃存技術(shù)的發(fā)展使得閃存兼具性能與成本的優(yōu)勢(shì)。然而,閃存作為小對(duì)象緩存也面臨著嚴(yán)重的壽命問(wèn)題,這與閃存的特性有關(guān)。閃存讀寫的最小單位是頁(yè)面(KB級(jí)粒度),而小對(duì)象通常不到一百個(gè)字節(jié)。因此,閃存緩存系統(tǒng)的簡(jiǎn)單部署勢(shì)必會(huì)導(dǎo)致嚴(yán)重的寫放大現(xiàn)象,加劇磨損問(wèn)題,降低固態(tài)硬盤的使用壽命。

02問(wèn)題

1.傳統(tǒng)的緩存策略

a)Log-structure cache:該策略將數(shù)據(jù)順序批量寫到閃存上,可以有效減小寫放大現(xiàn)象。為了記錄對(duì)象在閃存中的位置,每個(gè)對(duì)象需要在內(nèi)存中保留一個(gè)索引。對(duì)于一個(gè)比較大的工作集,數(shù)十億個(gè)對(duì)象索引的內(nèi)存開銷巨大。

b) Set-associative cache:該策略根據(jù)對(duì)象的鍵值將對(duì)象存放到不同的set中,就像CPU的cache,利用對(duì)象的鍵值來(lái)確定對(duì)象的實(shí)際存放位置,消除了內(nèi)存索引的開銷。但是該策略會(huì)將多余的字節(jié)寫入閃存,每個(gè)對(duì)象的修改都需要重寫整個(gè)閃存頁(yè)面,嚴(yán)重增加了閃存的寫入量。

2. 閃存緩存的寫放大

a) Device-level write amplification:設(shè)備級(jí)寫放大發(fā)生在閃存轉(zhuǎn)換層(FTL),即閃存內(nèi)部的寫入量超過(guò)主機(jī)端的寫入量。當(dāng)閃存內(nèi)部空閑空間不足時(shí),F(xiàn)TL除了應(yīng)對(duì)主機(jī)端的寫入,還需要執(zhí)行垃圾回收來(lái)把部分有效頁(yè)面遷移到新的塊內(nèi)。

b) Application-level write amplification:應(yīng)用級(jí)寫放大是指應(yīng)用程序需要重寫一些已經(jīng)存在的數(shù)據(jù)。當(dāng)一個(gè)頁(yè)面中的部分對(duì)象需要更新時(shí),閃存需要讀出整個(gè)頁(yè)面,修改后再進(jìn)行重新寫操作。

小對(duì)象使得閃存緩存系統(tǒng)極具挑戰(zhàn)性,在存儲(chǔ)設(shè)備中需要單獨(dú)記錄數(shù)十億個(gè)小對(duì)象,可能需要巨大的元數(shù)據(jù)索引結(jié)構(gòu),消耗大量的內(nèi)存資源;如果索引位于閃存上,又會(huì)引入額外的寫放大現(xiàn)象。先前的工作沒有解決如何以低成本在閃存中緩存小對(duì)象的問(wèn)題,log-structured cache需要過(guò)多的DRAM,而set-associative cache 會(huì)帶來(lái)嚴(yán)重寫放大問(wèn)題。

03設(shè)計(jì)

Kangaroo是一種閃存緩存設(shè)計(jì),其針對(duì)數(shù)十億個(gè)小對(duì)象的場(chǎng)景進(jìn)行了優(yōu)化。它的設(shè)計(jì)目的是最大限度地提高命中率,同時(shí)最大限度地減DRAM 的使用和閃存寫入。Kangaroo 采用分層設(shè)計(jì),跨內(nèi)存和閃存,將log-structured cache與set-associative cache結(jié)合。為了減少閃存的寫放大,Kangaroo利用Klog組件去緩存最近寫入的對(duì)象;為了減少DRAM的索引開銷,Kangaroo 利用Kset組件來(lái)緩存絕大多數(shù)對(duì)象。同時(shí)再Klog向Kset的轉(zhuǎn)化過(guò)程中,kangaroo利用了哈希沖突的特點(diǎn),當(dāng)大量的對(duì)象被映射到同一個(gè)Kset時(shí),這些對(duì)象會(huì)批量寫入Kset,既提升了性能又減小了閃存的寫放大現(xiàn)象。

af018a2e-45fc-11ee-a2ef-92fbcf53809c.png

圖一:kangaroo概覽

Kangaroo主要通過(guò)以下三個(gè)策略來(lái)減少閃存寫入,減小內(nèi)存開銷,提高緩存命中率。

1. Partitioned Klog:Klog內(nèi)部結(jié)構(gòu)為多個(gè)分區(qū),每個(gè)分區(qū)有自己獨(dú)立的日志結(jié)構(gòu)和DRAM索引結(jié)構(gòu)。同一個(gè)Set的所有對(duì)象都會(huì)位于同一個(gè)分區(qū)表。利用hash沖突的特點(diǎn),每個(gè)對(duì)象索引的next指針指向同一個(gè)set的下一個(gè)對(duì)象索引。采用拉鏈法解決哈希沖突使得Kangaroo可以高效的遍歷位于同一個(gè)set的對(duì)象,從而實(shí)現(xiàn)批量的寫入,減小寫放大。

af1fbd78-45fc-11ee-a2ef-92fbcf53809c.png

圖二:KLog

2. KlogàKset:當(dāng)數(shù)據(jù)從Klog向Kset遷移時(shí),Kangaroo利用準(zhǔn)入策略對(duì)對(duì)象進(jìn)行篩選。當(dāng)每次待寫入的對(duì)象數(shù)量少于閾值時(shí),Kangaroo會(huì)丟棄該數(shù)據(jù),多于閾值時(shí)才允許對(duì)象從Klog遷移到 Kset中。采用一個(gè)合適的準(zhǔn)入閾值可以使得該策略有效減小應(yīng)用級(jí)寫放大現(xiàn)象。此外,熱點(diǎn)數(shù)據(jù)如果沒有發(fā)生哈希沖突,可能會(huì)被剔除。Kangaroo為了解決這一問(wèn)題,會(huì)使得熱點(diǎn)數(shù)據(jù)重新進(jìn)入DRAM buffer,等待哈希沖突,提高緩存的命中率。

af53f188-45fc-11ee-a2ef-92fbcf53809c.png

圖三:準(zhǔn)入閾值對(duì)寫放大的影響

3. RRIParoo:Kangaroo會(huì)對(duì)Kset中的對(duì)象進(jìn)行管理,決定需要剔除的數(shù)據(jù)。傳統(tǒng)的驅(qū)逐策略通常有較多的DRAM開銷,而RRIParoo給每個(gè)對(duì)象分配1bit,當(dāng)對(duì)象最近被訪問(wèn)過(guò),該位置為0;同時(shí)結(jié)合經(jīng)典的RRIP緩存替換策略來(lái)智能選擇需要驅(qū)逐的數(shù)據(jù)。

最后,簡(jiǎn)單介紹下Kangaroo的基本操作流程,如圖四。

1. 查找

首先在DRAMcache中查找對(duì)象,若命中則返回,若缺失則進(jìn)入Klog中查找;若命中則返回,若缺失則查找Kset的布隆過(guò)濾器;若存在則查找Kset,若找到則返回,若缺失或假陽(yáng)性則從底層數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)。

2. 插入

首先數(shù)據(jù)寫入到DRAMcache中,其有一定的概率會(huì)直接丟棄,或進(jìn)入Klog;若進(jìn)入Klog,則可能發(fā)生Klog到Kset的遷移。若未達(dá)到準(zhǔn)入的閾值,則數(shù)據(jù)被丟棄,若達(dá)到準(zhǔn)入閾值,則修改布隆過(guò)濾器標(biāo)志位,并把數(shù)據(jù)寫入到Kset中。

af84b750-45fc-11ee-a2ef-92fbcf53809c.png

圖四:Kangaroo操作流程

04實(shí)驗(yàn)效果

論文作者團(tuán)隊(duì)中將 Kangaroo 實(shí)現(xiàn)為CacheLib 中的一個(gè)模塊,并用真實(shí)的設(shè)備,F(xiàn)acebook和Twitter的真實(shí)負(fù)載進(jìn)行了性能測(cè)試。實(shí)驗(yàn)中Kangaroo的基本配置參數(shù)如下表。

afabcc8c-45fc-11ee-a2ef-92fbcf53809c.png

表一:kangaroo實(shí)驗(yàn)配置

實(shí)驗(yàn)人員首先限制了DRAM的使用,從圖五中我們可以發(fā)現(xiàn),LS策略由于需要大內(nèi)存來(lái)存放索引,因而隨著內(nèi)存的增加,緩存缺失率下降;而SA策略基本不需要DRAM資源,性能隨著內(nèi)存容量的影響不大;而Kangaroo能以以極小的內(nèi)存開銷實(shí)現(xiàn)了較低的緩存缺失率。

afcd067c-45fc-11ee-a2ef-92fbcf53809c.png

圖五:限制內(nèi)存使用場(chǎng)景下的緩存缺失率

下圖顯示了三種策略在Facebook連續(xù)7天的負(fù)載下的表現(xiàn),實(shí)驗(yàn)人員在這組實(shí)驗(yàn)中限制了閃存的最大寫入速度。Kangaroo的緩存缺失率與 SA 相比減少了 29%,與 LS相比減少了 56%。這是因?yàn)?Kangaroo有效地利用了有限的DRAM ,減少了閃存寫入。

aff84076-45fc-11ee-a2ef-92fbcf53809c.png

圖六:三種策略連續(xù)7天內(nèi)的緩存缺失率

05總結(jié)

Kangaroo結(jié)合了Log-structured cache與Set-associative cache的優(yōu)點(diǎn),減少了小對(duì)象閃存緩存系統(tǒng)的DRAM開銷與閃存寫入量,降低了緩存系統(tǒng)的成本,提升了生產(chǎn)系統(tǒng)的性能。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8741

    瀏覽量

    147712
  • DRAM芯片
    +關(guān)注

    關(guān)注

    1

    文章

    84

    瀏覽量

    18041
  • NVM
    NVM
    +關(guān)注

    關(guān)注

    1

    文章

    41

    瀏覽量

    19151
  • 緩存器
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    11684
  • 過(guò)濾器
    +關(guān)注

    關(guān)注

    1

    文章

    432

    瀏覽量

    19681

原文標(biāo)題:聊聊閃存緩存設(shè)計(jì)

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種針對(duì)存儲(chǔ)系統(tǒng)設(shè)計(jì)的應(yīng)用級(jí)緩存回收策略

    【作者】:孟曉烜;司成祥;那文武;許魯;【來(lái)源】:《小型微型計(jì)算機(jī)系統(tǒng)》2010年03期【摘要】:針對(duì)存儲(chǔ)系統(tǒng)中的緩存管理單元設(shè)計(jì)一種區(qū)分應(yīng)用優(yōu)先級(jí)的緩存回收策略,簡(jiǎn)稱PARP.該策略基于分區(qū)
    發(fā)表于 04-24 09:43

    linux的DNS緩存清空方法

    Linux下DNS緩存實(shí)現(xiàn)通常有兩方式:一種是用DNS緩存程序NSCD(name service cache daemon)負(fù)責(zé)管理DNS
    發(fā)表于 07-25 07:53

    請(qǐng)問(wèn)怎樣去設(shè)計(jì)一種閃存設(shè)備IO軟件?

    閃存設(shè)備管理技術(shù)的現(xiàn)狀及存在的問(wèn)題是什么?閃存設(shè)備I/O軟件的分層結(jié)構(gòu)是怎樣的?怎樣去設(shè)計(jì)一種閃存設(shè)備IO軟件?
    發(fā)表于 04-26 07:04

    一種基于AT89C51SNDlC單片機(jī)和閃存實(shí)現(xiàn)的MP3公交車報(bào)站器

    本文介紹一種基于AT89C51SNDlC單片機(jī)和閃存實(shí)現(xiàn)的MP3公交車報(bào)站器,可通過(guò)鍵盤和播放列表文件實(shí)現(xiàn)高品質(zhì)語(yǔ)音信息的播放。
    發(fā)表于 05-14 06:16

    分享一種基于閃存的藍(lán)牙低功耗無(wú)線電系統(tǒng)單芯片

    本文將與大家分享一種基于閃存的藍(lán)牙低功耗無(wú)線電系統(tǒng)單芯片。
    發(fā)表于 06-16 06:50

    怎樣去實(shí)現(xiàn)一種基于DSP和ADC技術(shù)高速緩存和海量緩存?

    構(gòu)成高速緩存的方案有哪幾種?如何去實(shí)現(xiàn)一種海量緩存的設(shè)計(jì)?怎樣去實(shí)現(xiàn)一種基于DSP和ADC技術(shù)高
    發(fā)表于 06-26 07:50

    聊聊環(huán)形緩存在單片機(jī)程序中的使用

    片頭因?yàn)榄h(huán)形緩存在單片機(jī)程序中的使用是非常有效的,非常有用的,關(guān)于這個(gè)話題在此專門開文章來(lái)聊聊這個(gè)話題。環(huán)形緩存的用途主要是來(lái)緩存數(shù)據(jù),而
    發(fā)表于 12-06 08:29

    一種基于P2P協(xié)作的代理緩存流媒體調(diào)度算法

    該文根據(jù)流媒體系統(tǒng)中緩存空間不足及服務(wù)延遲的問(wèn)題,提出一種基于P2P 協(xié)作的代理緩存流媒體調(diào)度算法PCSPC(Proxy-Caching Scheduler based on P2P Cooperation)。首先按照流行度高的
    發(fā)表于 02-10 15:04 ?4次下載

    一種高能效的結(jié)構(gòu)不對(duì)稱指令緩存

    在現(xiàn)代微處理器中,指令緩存的Tag讀取、比較消耗了指令緩存較大比例的能耗。提出一種基于推斷的低能耗指令緩存:不對(duì)稱指令緩存。根據(jù)跳轉(zhuǎn)指令比例
    發(fā)表于 11-22 10:52 ?2次下載
    <b class='flag-5'>一種</b>高能效的結(jié)構(gòu)不對(duì)稱指令<b class='flag-5'>緩存</b>

    一種新型閃存緩存管理方法PRLRU

    時(shí)會(huì)頻繁引發(fā)非覆蓋寫和垃圾回收操作。針對(duì)此問(wèn)題,提岀了一種叫作 PRLRU的新型閃存緩存管理方法,通過(guò)頁(yè)面重構(gòu)機(jī)制以及數(shù)據(jù)溫度識(shí)別機(jī)制來(lái)管理緩存區(qū)。頁(yè)面重構(gòu)機(jī)制把即將回寫的有效數(shù)據(jù)未滿
    發(fā)表于 04-02 15:47 ?16次下載
    <b class='flag-5'>一種</b>新型<b class='flag-5'>閃存</b><b class='flag-5'>緩存</b>管理方法PRLRU

    一種基于緩存塊重用信息的動(dòng)態(tài)旁路策略

    非易失性存儲(chǔ)器具有能耗低、可擴(kuò)展性強(qiáng)和存儲(chǔ)密度大等優(yōu)勢(shì),可替代傳統(tǒng)靜態(tài)隨機(jī)存取存儲(chǔ)器作為片上緩存,但其寫操作的能耗及延遲較高,在大規(guī)模應(yīng)用前需優(yōu)化寫性能。提出一種基于緩存塊重用信息的動(dòng)態(tài)旁路策略用于
    發(fā)表于 04-29 15:48 ?4次下載
    <b class='flag-5'>一種</b>基于<b class='flag-5'>緩存</b>塊重用信息的動(dòng)態(tài)旁路策略

    SSD緩存有3 千萬(wàn)別買錯(cuò)!

    緩存,這不是增加成本嗎?本期DIY從入門到放棄我們就來(lái)聊聊固態(tài)硬盤的緩存。 固態(tài)硬盤的工作方式其實(shí)很簡(jiǎn)單,主控負(fù)責(zé)數(shù)據(jù)管理,由它來(lái)進(jìn)行數(shù)據(jù)讀寫的控制和分配;緩存芯片用來(lái)
    的頭像 發(fā)表于 10-25 18:09 ?2087次閱讀
    SSD<b class='flag-5'>緩存</b>有3<b class='flag-5'>種</b> 千萬(wàn)別買錯(cuò)!

    聊聊緩存數(shù)據(jù)庫(kù)致性

    在云服務(wù)中,緩存是極其重要的點(diǎn)。所謂緩存,其實(shí)是個(gè)高速數(shù)據(jù)存儲(chǔ)層。當(dāng)緩存存在后,日后再次請(qǐng)求該數(shù)據(jù)就會(huì)直接訪問(wèn)
    的頭像 發(fā)表于 01-30 17:41 ?815次閱讀

    聊聊本地緩存和分布式緩存

    本地緩存 :應(yīng)用中的緩存組件,緩存組件和應(yīng)用在同進(jìn)程中,緩存的讀寫非常快,沒有網(wǎng)絡(luò)開銷。但各應(yīng)用或集群的各節(jié)點(diǎn)都需要維護(hù)自己的單獨(dú)
    發(fā)表于 06-11 15:12 ?848次閱讀
    <b class='flag-5'>聊聊</b>本地<b class='flag-5'>緩存</b>和分布式<b class='flag-5'>緩存</b>

    mybatis級(jí)緩存和二級(jí)緩存的原理

    MyBatis是一種輕量級(jí)的持久化框架,它提供了級(jí)緩存和二級(jí)緩存的機(jī)制來(lái)優(yōu)化數(shù)據(jù)庫(kù)操作性能。級(jí)緩存
    的頭像 發(fā)表于 12-03 11:55 ?1229次閱讀
    主站蜘蛛池模板: 欧美97色伦影院在线观看| 国产成人精品免费视频软件| 动漫美女3d被爆漫画| 久草在在线免视频在线观看| 日本无翼恶漫画大全优优漫画| 摸董事长的裤裆恋老小说| 无人视频在线观看免费播放影院 | 午夜AV国产欧美亚洲高清在线| 真实农村女人野外自拍照片| 扒开美女下面粉嫩粉嫩冒白浆| 国产精品爽黄69天堂A片| 免费网站在线观看国产v片| 香蕉鱼视频观看在线视频下载| www.中文字幕在线观看| 久久精品国产只有精品| 忘忧草在线社区WWW日本直播| 8X拨牐拨牐X8免费视频8| 狠日狠干日曰射| 神马电影dy888午夜我不卡| 97ganmeizi| 久久99国产精品蜜臀AV| 忘忧草日本在线社区WWW电影| TUBE19UP老师学生| 日本熟妇多毛XXXXX视频| 伊人伊人影院| 国产亚洲精品久久久无码狼牙套| 日韩亚洲视频一区二区三区| 91伊人久久大香线蕉| 精品熟女少妇AV久久免费A片| 我们中文在线观看免费完整版| sihu国产精品永久免费| 恋夜影院支持安卓视频美女| 亚洲国产日韩欧美在线a乱码| 国产扒开美女双腿屁股流白浆| 全部老头和老太XXXXX| 97无码欧美熟妇人妻蜜桃天美| 精品伊人久久| 亚洲黄色免费观看| 国产精品亚洲精品久久品| 日韩欧美中文字幕在线二视频| MATURETUBE乱妇|