论文链接 https://link.springer.com/article/10.1007/s11704-017-7119-0

这篇论文试图解决的问题是在cache 环节之前,prefetch-cache 进来的可能无关的 fingerprint 造成的cache pollution问题,即可能把没有用的 fingerprint 换入 cache,造成 cache 污染的问题。

这篇论文的贡献:提出了一种新的针对 prefetch 进来的 fingerprint 替换策略,并且提出了一种 adaptive 的方法,针对不同的 fingerprint 有与其对应的替换策略,提高了 deduplication throughput 和 deduplication ratio. 本文并不是试图提出一种新的对 fingerprint 如何进行 prefetch 的方法,而是针对不同种类的,已经做过了 prefetch 操作的 fingerprint,针对他们不同的种类,做不同的replacement。同时,这种 replacement policy 并不和 LRU 等 policy 相冲突,反而可以和之前的 LRU policy 相结合。

具体方法框架如图所示:

细节:针对一个被 prefetch 的 fingerprint 分为了两大类,一类是 accurate 的fingerprint,一类是 inaccurate 的fingerprint。accurate 的 fingerprint 是说那些prefetch 进 cache 之后,hit 了超过不止一次的 fingerprint,反之则是 inaccurate。对于 inaccurate fingerprint 又可以划分为不同的种类,有 Unused prefetched fingerprint,used only once fingerprint,mixed pattern fingerprint,针对这三种不同的 fingerprint,提出了不同的替换策略,分别是 PreCache-UNU, PreCache-UOO,PreCache-MIX。不同的替换策略都有不同的假设,自然也有不同的操作。

PreCache-UNU 预测所有新被 prefetch 的 fingerprint 都不会被用到(distant future)所以应该直接要被 LRU 算法替换出去(evicted quickly)针对这些 fingerprint,采用的方法是把他们直接移动到 LRU queue 的尾端,这样当 LRU 进行替换的时候,他们就是第一批被替换出去的 fingerprint。如果这些被认为是 UNU 的fingerprint 被使用了(即这个时候我们错误的划分了 fingerprint)那么根据 LRU 的规则他们也会被放到 head 端,这就是没有直接把这些 fingerprint 剔除的原因。

PreCache-UOO 预测所有的新的被 prefetch 的 fingerprint 只会被使用一次,然后就不会被使用。所以,他把这些 fingerprint 放在 LRU 队列的 head 端,并且当这些 fingerprint 被 hit 的时候,并不会重新调整他们的位置。(因为预测他们只会被使用一次,如果调整了他们的位置,就和传统的并无差别)。针对一些被 prefetch 进 cache,并且较长时间没有被使用,到快被替换出去的时候才被hit了一次,然后又不会被 hit 的fingerprint 而言,这种策略能够很快的将他们替换出去(因为并没有调整他们的位置)。

PreCache-MIX 给所有的 fingerprint 一个统一的策略,放在 LRU 队列的 tail 端,并且即使命中也不会调整位置。

同时,还存在一个问题,针对一个 fingerprint,如何把它进行分类,如何去选择一个适合他的替换策略。提出了一种动态适应的选择器,可以根据预测的历史结果,动态选择合适的策略去替换不同的 fingerprint。

选择器的功能:针对一个 fingerprint,去预测这个 fingerprint 是属于 accurate 还是 inaccurate 的,如果是 inaccurate 的,那么是 UNU 的,还是 UOO 的,还是 MIX 的。

选择器维护了几个计数器:

  • total 记录了所有被 prefetch 的 fingerprint 个数。
  • use_over_once,记录了cache中所有被 hit 超过一次的 fingerprint 的个数
  • unused,记录了被 prefetch 的,但是没有被使用的 fingerprint 的个数。
  • Use_only_once 记录了只被使用过一次的 fingerprint 的个数。
  • hit_evice_buf 记录了一个main cache miss 在 evicted 中被 hit 的个数。

选择器主要的 idea:根据历史信息来预测。
每个种类都有一个对应的判别阈值和公式去决定这个 prefetch 的 fingerprint 是否是对应的种类。

效果评估:
在 BLC 和 SiLO 这两个系统的基础上加入了 PreCache 算法,使用的数据是 Kernel,MacOS 和 Homes 三种。BLC 系统代表的是 exact deduplication 系统,SiLO 系统代表的是 near exact deduplication 系统,针对两个不同的系统,采取的评价指标也不一样。BLC 中,因为 fingerprint 无法完全被存入cache,所以使用 look up index 的次数去评价系统,而 SiLO 因为 采用的是 sample feature 的方式,所以使用 deduplication ratio 去评价系统。

论文阅读 Prefetch-aware fingerprint cache management for data deduplication systems的更多相关文章

  1. 论文阅读《ActiveStereoNet:End-to-End Self-Supervised Learning for Active Stereo Systems》

    本文出自谷歌与普林斯顿大学研究人员之手并发表于计算机视觉顶会ECCV2018.本文首次提出了应用于主动双目立体视觉的深度学习解决方案,并引入了一种新的重构误差,采用自监督的方法来解决缺少ground ...

  2. 论文阅读:FlexGate: High-performance Heterogeneous Gateway in Data Centers

    摘要: 大型数据中心通过边界上的网关对每个传入的数据包执行一系列的网络功能,例如,ACL被部署来阻止不合格的流量,而速率限制被用于防止供应商过度使用带宽,但是由于流量的规模巨大,给网关的设计和部署带来 ...

  3. [论文阅读笔记] Community aware random walk for network embedding

    [论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...

  4. [论文阅读]阿里DIN深度兴趣网络之总体解读

    [论文阅读]阿里DIN深度兴趣网络之总体解读 目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词解释 ...

  5. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...

  6. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

  7. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

  8. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  9. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

随机推荐

  1. Android适配总结

    1.dp与px的 密度类型 代表的分辨率 屏幕密度 换算 比例 低密度(ldpi) 240x320 120 1dp=0.75px 3 中密度(mdpi) 320x480 160 1dp = 1px 4 ...

  2. deferred对象和promise对象(一)

    个人认为阮一峰老师讲的关于deferred对象是最容易理解的. deferred对象是jquery的回调函数解决方案.解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口. d ...

  3. 【TencentOS tiny】又有一个操作系统开源

    新闻 2019年9月18日,腾讯宣布将开源 自主研发的轻量级物联网实时操作系统TencentOS tiny.相比市场上其它系统,腾讯TencentOS tiny在资源占用.设备成本.功耗管理以及安全稳 ...

  4. Java工程师学习指南(入门篇)

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  5. windows自带的netsh的使用

    0x01netsh简介 自Windows XP开始,Windows中就内置网络端口转发的功能.任何传入到本地端口的TCP连接(IPv4或IPv6)都可以被重定向到另一个本地端口,或远程计算机上的端口, ...

  6. Kali桥接模式DHCP自动获取IP失败(VMware)

    Kali桥接模式DHCP自动获取IP失败笔者用的是VMware运行Kali Linux,突然发现桥接模式无法上网,只能使用NAT模式.身为有一点点强迫症的人来说,这就很不爽了.于是马上切换为桥接模式, ...

  7. Shell多进程执行任务

    展示代码 #!/bin/bash trap "exec 1000>&-;exec 1000<&-;exit 0" 2 # 分别为 创建管道文件,文件操作 ...

  8. cookie session token 详解

    cookie 是保存在本地终端的数据.cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器. 可以在浏 ...

  9. OpenvSwitch系列之ovs-vsctl命令使用

    Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl 命令使用 OpenvSwit ...

  10. Uipath 获取当前浏览器页面URL

    文章来源东京IT青年前线 http://www.rpatokyo.com   Uipath 获取当前浏览器页面URL的方法 Inject Js Script   因为目前没有直接获取页面URL的Act ...