一篇热数据识别存储外文翻译,本文主要在讲思想

原文题目:

 HDCat: Effectively Identifying Hot Data in
   Large-scale I/O Streams with Enhanced
  Temporal Locality

翻译:大规模的I/O流中有效识别热数据并增强时间局部性

外文网址:http://dsc.jnu.edu.cn/paper/2015/ICA3PPCH.pdf

本文主要讲里面的详细算法及思想

第一作者:陈嘉豪

论文简单摘要:

热数据对于优化现代计算机是很重要的。热数据识别能添加闪存的寿命,可是对低存储消耗和低执行时间开销是一个挑战,本文提出了“热数据捕获器(HDCat)”,能通过增强时间局限性在大规模I/O流中识别热数据。HDCat包括两条队列,一条热数据队列,一条候选热数据队列。HDCat採用了D位计数器和近期位而且能有效地减少冷热数据的转换。最后使用了实例測试。

论文中几个概念:

热数据:用户訪问率非常高

时间局部性:假设一个信息项正在被訪问。那么最近它可能还会被再次訪问

闪存:断电数据不会丢失,像USB

论文背景:

传统的热数据识别算法只记录了当前的数据项,忽视了相应数据集的体积。然而,大多数採用传统方法识别热数据会造成大的存储消耗和高执行时间开销,而且没有考虑时间局部性对热数据识别有非常大的影响。为了克服这个问题,Hsieh提出了多哈希函数框架识别热数据。这个算法採用了多哈希函数和一个布尔过滤器去捕获数据訪问频率。因此採用了一个计数器去准确捕获訪问频率信息。

可是算法中存在的指数衰减模式使它非常难去获得数据訪问的时间局部性。

热数据识别方法在不同场景中有应用,缓存是一种典型的场景。

缓存的缺点:不能在已有数据的位置进行更新,受冷热数据转换影响大,降低使用寿命。造成延时,写入次数有限。备份花费高。本文提出了HDCat,主要思想是:

1、依据近期位更新D位计数器。近期訪问的数据D位计数器增长更快比近期没有范文的数据

2、过滤机制是基于最低位的。当算法须要去移除数据,一定是D位计数器值最小,而且近期位为0

3、算法能有效解决执行时间消耗和存储问题

实现结果表明:当维持低存储消耗和低执行时间开销时。识别热数据准确性提高。

Hash算法: Hash能够通过散列函数将随意长度的输入变成固定长度的输出,也能够将不同的输入映射成为同样的同样的输出,并且这些输出范围也是可控制的,所以起到了非常好的压缩映射和等价映射功能。Hash为什么会有这样的 压缩映射和等价映射功能,主要是由于Hash函数在实现上都使用到了取模。经常使用的Hash函数:

直接取余法:f(x):= x mod maxM ; maxM通常是不太接近 2^t 的一个质数。

  ・乘法取整法:f(x):=trunc((x/maxX)*maxlongit) mod maxM,主要用于实数。

  ・平方取中法:f(x):=(x*x div 1000 ) mod 1000000); 平方后取中间的,每位包括信息比較多。

相关工作:

布隆过滤器:目标记录低存储消耗信息

D位计数器:一个布尔值记录有限制,非常多情况下不能满足需求。塑性变量花费太多存储空间。

D位计数器是一个D位数组,能记录范围0到(2的D次方-1)。開始值设为0,当对应元素出现时。设置为1。整个值超过(2的D次方-1)时。停止加1。D位计数器中包括B最大位,被叫做临界值。B位后全为0则表示数据没有超出临界值,

热数据识别算法:


TLL:
两层LRU算法简称TLL包括一个热数据列表和一个候选热数据列表,长度固定,当一个请求到达时,TLL检查是否有相应的逻辑区块地址(LBA)在热数据列表中

假设有。数据被记录成热数据。否则视为冷数据,假设在候选热数据列表中。数据就变成热数据,假设两个表都没有,插入到候选表中。

长处:有好的空间有效性。只须要记录热数据和候选热数据的訪问信息。

缺点:性能依赖于两个表的长度,当表长短时,能减少存储消耗,但它会不适当地减少热点数据到候选列表。从而减少热数据识别准确性,而且会出现高执行时间消耗。

MHF:多hash函数框架简称MHF,採用了多hash函数和D位计数器。如图1,

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

MHF记录数据訪问信息通过添加对应的计数器。更新数据訪问信息通过定期的使计数器除以2。假设B位后面有1,返回1,否则返回0。MHF採用K个独立的hash函数,假设K个返回值为1,则为热数据。如图1,算法使用4位计数器和2位最大位。那么4就是临界值,在样例中,用4个函数f1,f2,f3,f4标记数据X。得到4个值:0010,0100,1111,1001,当中0100返回0,则推断为冷数据。

长处:实现了低存储消耗和低执行时间开销

缺点:近期訪问的信息没有

HotData Catcher:

HDCat概述:

如图2所看到的,HDCat由一个热数据列表和一个候选热数据列表组成,列表中每一项包括一个近期位和一个D位计数器。

初始化设为空。全部数据项为冷数据,当数据到达时,先检查是否在两个列表中,不论什么列表假设包括改数据项,相应的D位计数器添加。假设数据在候选列表中,而且D位计数器值大于所给临界值,改数据将插入热数据列表。热数据列表为满,利用过滤机制淘汰一项数据到候选列表。

假设两个列表都不包括。插入到候选列表,候选列表淘汰一项数据。

HDCat细节:

假设近期位为0,D位计数器添加1。假设为1,则添加2

D位计数器达到最大值后。假设数据再次訪问也不会添加

数据项的近期位将被设置为1,其热值将高速成长。HDCat採用了老化机制来处理这个问题。即对D位计数器并不简单地与添加,而是随着时间的推移变少

HDCat流程图:

过滤机制:假设列表满,须要淘汰元素时,最好是找到近期位为0,D位计数器最小的项,可是须要遍历整个列表,造成高执行时间消耗,过滤机制採用,仅仅需找到D位计数器小于临界值。就遍历停止。

老化机制:固定的时间没訪问数据D位计数器减半

採样机制:避免冷热数据相互频繁转换,假设数据频繁訪问。而候选表中有非常长没有訪问的,通过採样机制可能就增大了

算法评估

评估环境:同样的衰减间隔和老化机制。三种实迹数据收集从微软的数据中心在块级别使用事件跟踪的核心server。时间长度144小时,

每一个记录包含时间戳。请求类型,数据地址偏移,数据块大小

硬件监控(hm),測试站点server(wdev)。研究项目(rsrch)

hm和wdev有很大的地址空间,rsrch小

实验结果:命中率越高越好。冷热数据转换率越低越好

命中率:终端用户訪问加速节点时。假设该节点有缓存住了要被訪问的数据时就叫做命中,假设没有的话须要回原server取。就是没有命中。取数据的过程与用户訪问是同步进行的,所以即使是又一次取的新数据,用户也不会感觉到有延时。 命中率=命中数/(命中数+没有命中数)。 缓存命中率是推断加速效果好坏的重要因素之中的一个。

表1和表2,表示相互关系的參数表

图3表示了命中率的实验结果,图4用柱状图表示:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图5总结在不同缓存大小下。总的命中率大小

图6表示转换次数,图7为柱状图

总结

本文提出了热数据识别算法(HDCat)利用D-bit计数器和近期位,实迹用于评估,和TTL、MHF作比較,HDCat能够准确地捕捉到数据訪问模式的时间局部性,实现了较高的命中率,低缓存存储性和执行时开销。此外。HDCat显著减少了数冷热数据之间的转换,从而减少写入的数操作。因此。HDCat是一个非常好的候选方法的优化性能闪速存储器的可靠性。

此外。我们觉得HDCat能够应用到很多场景以优化的计算机系统。

大规模的I/O流中有效识别大数据并增强时间局部性的更多相关文章

  1. nodeks —— fs模块 —— 从流中 读取和写入数据

    Fs流读取和写入数据 使用文件流来读取大文件不会卡顿 1, 从流中读取数据 var fs = require("fs"); var data = ''; var count = 0 ...

  2. LeetCode703 流中第k大的元素

    前言: 我们已经介绍了二叉搜索树的相关特性,以及如何在二叉搜索树中实现一些基本操作,比如搜索.插入和删除.熟悉了这些基本概念之后,相信你已经能够成功运用它们来解决二叉搜索树问题. 二叉搜索树的有优点是 ...

  3. CI框架中怎么传递大数据给PHP?

    CI中怎么将HTML页面中的大数据(如富文本)通过CONTROLLER传递给MODEL中的函数?难道还是通过构造链接的形式传递吗?求指点.

  4. 3dTiles 数据规范详解[3] 内嵌在瓦片文件中的两大数据表

    转载请声明出处:全网@秋意正寒 零.本篇前言 说实话,我很纠结是先介绍瓦片的二进制数据文件结构,还是先介绍这两个重要的表.思前想后,我决定还是先介绍这两个数据表. 因为这两个表不先给读者灌输,那么介绍 ...

  5. Qt5中表格处理大数据量

    在Qt中如果是普通项目,GUI处理展现的数据量不大,一般用QTableWidget,QTreeWidget这样的控件就满足了,但是如果数据量行数达到了几万行,那么Widget的展示性能就偏差了. Qt ...

  6. asp.net中TreeView的大数据加载速度优化

    由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height ...

  7. 中国大数据企业排行榜V6.0- 5 年后再去看看中几个大数据公司的发展状况

    2019年5月27日,首席数据官联盟在贵阳举办的2019中国国际大数据产业博览会上正式发布了<中国大数据企业排行榜V6.0>   本次排行榜新增8个垂直行业和领域.上榜企业是从全国五千多家 ...

  8. 使用Oracle Stream Analytics 21步搭建大数据实时流分析平台

    概要: Oracle Stream Analytics(OSA)是企业级大数据流实时分析计算平台.它可以通过使用复杂的关联模式,扩充和机器学习算法来自动处理和分析大规模实时信息.流式传输的大数据可以源 ...

  9. Windows文件路径转换为java中可识别的文件路径的转义方法,(另附转义多种格式)

    ps:欢迎加qq好友:2318645572,交流学习 一:路径转化 Windows中的文件路径格式为 D:\eclipse\apache-tomcat-7.0.67\wtpwebapps\... Ja ...

随机推荐

  1. Python--10、进程知识补充

    守护进程 基于进程启动的子进程,会和主进程一起结束.主进程结束的依据是程序的代码执行完毕. #创建守护进程p=Process(task) p.daemon = True p.start() 子进程需要 ...

  2. SAS进阶《深入解析SAS》之开发多语言支持的SAS程序

    SAS进阶<深入解析SAS>之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式.信息展现的方式都符合当地的语言.文化习 ...

  3. C# winform启动外部exe后,如何完全阻断父界面接收事件,扩展waitforexit

    公司的系统搭载了好多奇奇怪怪的exe,以前启动exe后,系统还能接着操作.但是后面又提出额外的需求,说是打开外部exe之后,启动exe的父界面要完全不能进行任何操作.当然按常人所想再加一句waitfo ...

  4. JS——设置cookie

    cookie 用来识别用户. <html> <head> <script type="text/javascript"> function ge ...

  5. 扩增子图表解读5火山图:差异OTU的数量及变化规律

    火山图 Volcano plot 在统计学上,火山图是一种类型的散点图,被用于在大数据中快速鉴定变化.由于它的形成像火山喷发的样子,所以被称为火山图.和上文讲的曼哈顿图类似.   火山图基本元素 火山 ...

  6. 20190625_mysql5.7查看及其解锁_被锁的表

    [root@localhost ~]# mysql -u myroot -pEnter password: mysql> show OPEN TABLES where In_use > 0 ...

  7. UGUI世界坐标转换为UI本地坐标(游戏Hud的实现)

    实现世界坐标的原理是: 世界坐标和UGUI的坐标分属两个坐标系,他们之间是无法进行转换的,需要通过屏幕坐标系来进行转换(因为屏幕坐标是固定的),即先将游戏场景中的世界坐标通过游戏场景Camera转化为 ...

  8. 5.Linux系统的vim与软件包管理

    5.1 Linux系统的vim编辑器 5.1.1 vim编辑器的概述 vim编辑器的简介 1.vim是什么? vim是一个类似vi的文本编辑器,它在vi的基础上增加了很多新特性 vim是vi发展出来的 ...

  9. css 字体单位之间的区分以及字体响应式实现

    问题场景: 在实现响应式布局的过程中,如何设置字体大小在不同的视窗尺寸以及不同的移动设备的可读性? 需要了解的有: 1.px,em,pt之间的换算关系 1em = 16px 1px  = 1/16 e ...

  10. P4047 [JSOI2010]部落划分(最小生成树)

    题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成为谜团了——聪 ...