一种基于区域热度的缓存管理方法

文档序号:8472901阅读:473来源:国知局
一种基于区域热度的缓存管理方法
【技术领域】
[0001]本发明属于计算机信息存储技术领域,更具体地,涉及一种基于区域热度的缓存管理方法。
【背景技术】
[0002]磁盘在读写数据时的寻道和定位等机械操作产生了旋转延迟,使得磁盘响应速度远远慢于内存,由此造成了整个存储系统的性能瓶颈。为了提高系统存储速度,在磁盘与内存之间添加一层可以高速地存取数据缓存设备;磁盘存储系统中缓存的作用就是通过存储磁盘中被频繁访问的热点数据加速磁盘的存取速度,那么这些热点数据就可以直接从缓存中读取,缩短了数据响应时间,提高整个磁盘存储系统的性能,但是能够进行高速数据存取的缓存设备一般价格比较高昂且缓存容量有限。缓存管理就是要充分利用有限的缓存容量来存储尽可能多的热点数据,提高缓存设备利用率,以提高整个磁盘存储系统的性能。与传统磁盘相比,固态硬盘(SSD)是一种电子设备,无机械旋转操作引起的延迟,具有随机I/O性能高,能耗低,噪声小,抗震性好的优点,但容量小,成本高,而且擦除次数有限,有使用寿命的限制;很多存储产品中采用混合存储的模式,将固态硬盘作为磁盘的二级缓存。
[0003]为了提高缓存命中率、延长SSD使用寿命,传统的缓存替换算法主要考虑访问的时间局部性和热数据,而热数据的统计方法主要是基于单位周期内每一块的访问量,这些方法不适合直接应用于基于SSD的磁盘缓存;首先,SSD作为二级缓存相对于一级缓存(内存),具有较弱的时间局部性;其次,大量研宄表明缓存热数据和基于访问频率的替换(FBR)算法要优于像LRU这种基于时间局部性的算法;然而,热数据的统计一般是基于磁盘块的访问频率,这就需要一个热度计算过程,在热度计算过程中可能会引起热数据之间或冷热数据之间的频繁替换,不仅会影响性能,还造成对SSD大量的写,缩短了 SSD的使用寿命O

【发明内容】

[0004]针对现有技术的以上缺陷或改进需求,本发明提供了一种基于区域热度的缓存管理方法,其目的在于通过对数据块的筛选,只缓存热点数据块,减少了缓存写满后的替换操作,由此提高缓存命中率、延长SSD使用寿命。
[0005]为实现上述目的,按照本发明的一个方面,提供了一种基于区域热度的缓存管理方法,具体如下:
[0006](I)在内存中创建哈希表和二叉树,并初始化哈希表和二叉树;采用哈希表记录磁盘区域号、每个磁盘区域对应的热度值以及两个指向左右子区域的指针;采用二叉树保存子区域的热度值;其中,子区域是指每个区域再次被划分后对应的区域;
[0007](2)对于每次读写请求,根据磁盘区域大小和读写请求数据块对应的地址更新哈希表内各区域的热度值;同时按照热度值衰减周期将各区域的热度值减半,并更新二叉树内子区域热度值;
[0008](3)根据区域热度值筛选出频繁访问的数据块,将该数据块里的数据写入缓存;由于磁盘上的大部分热点数据主要分布在几个特定的区域;因此先筛选出这些被频繁访问的数据块,再写入容量有限的缓存中,可提高缓存的命中率,同时减少缓存数据的替换操作,延长固态硬盘缓存的使用寿命。
[0009]优选的,步骤(I)中,哈希表大小的初始化值为磁盘块数量除以每个区域大小所获得的值,哈希表项和二叉树的所有初始化值都为O。
[0010]优选的,步骤(2)中,更新区域热度值的过程具体如下:
[0011](2.1)当一次读写请求到达时,对磁盘进行区域划分,获取区域号;
[0012](2.2)在哈希表中查找区域对应的哈希表项,并将该区域的热度值增加I ;
[0013](2.3)若当前总访问次数是热度值衰减周期的整数倍,则将对应的区域热度值减半,同时将对应的子区域热度值减半;
[0014](2.4)当区域热度值减为0,则清空对应的哈希表项,以记录新的区域信息;其中,区域号由逻辑块地址除以区域大小获取。
[0015]优选地,步骤(3)根据区域热度值筛选出频繁访问的数据块的过程具体如下:
[0016](3.1)判断请求数据是否命中缓存;若是,则进入步骤(3.10);若否,则进入步骤(3.2);
[0017](3.2)判断缓存是否已写满;若是,进入步骤(3.4);若否,则进入步骤(3.3);
[0018](3.3)将请求数据写入空闲缓存块,形成请求数据块,并将请求数据块插入缓存块队列尾部,然后进入步骤(3.10);
[0019](3.4)从缓存队列的头部开始,按照先进先出的原则,获取一个缓存块,然后进入步骤(3.5);
[0020](3.5)判断请求数据块与步骤(3.4)中获取的缓存块是否属于同一区域;若是,则进入步骤(3.6);若否,则进入步骤(3.7);
[0021](3.6)判断请求数据块与缓存数据块是否属于同一子区域,若是,则进入步骤(3.4),从缓存队列中获取下一个缓存块;若否,则进入步骤(3.7);
[0022](3.7)从哈希表中通过数据块号分别查找缓存块对应的区域热度PrA与请求数据块对应的区域热度PrB ;若PrB大于c*PrA,则进入步骤(3.10);否则,进入步骤(3.8);其中c为比较因子;
[0023](3.8)重复步骤(3.4)?(3.7),直到请求数据块区域热度与缓存队列里所有数据块的区域热度比较完,进入步骤(3.9);
[0024](3.9)将读写请求定向到磁盘对应的地址,将请求数据块写入磁盘;
[0025](3.10)将读写请求定向到当前缓存对应的地址,将请求数据块写入当前选择的缓存块所在的空间;
[0026]其中,缓存队列是一个FIFO队列,用于记录已被缓存的数据;哈希表项记录了每个区域的热度和区域号;区域热度以访问次数计数并按照预先设定的衰减周期进行减半,衰减周期按照请求访问次数计算;区域号是通过请求的磁盘块号与预先设定的区域大小相除获得。
[0027]以上步骤(3)的优点在于:对未命中缓存的请求数据进行控制,以筛选写入缓存的请求数据,减少缓存替换操作。
[0028]优选地,比较因子c取大于I的值;比较因子大于I表明:只有当请求数据块的热度值超过被缓存块的热度值达到一定量才执行缓存替换,而非等值比较;这样可以延迟缓存替换,有效阻止频繁替换。
[0029]优选地,由于磁盘区域内可能存在非频繁访问的冷数据,将每个磁盘区域进一步划分成两个相等的子区域,并通过二叉树来管理子区域,由此提高识别热数据的准确度。
[0030]本发明提出的缓存管理方法优选以固态硬盘为缓存介质,但其应用不限于磁盘存储系统。
[0031]总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0032](I)本发明提出的基于区域热度的缓存管理方法,利用简单的哈希表和二叉树结构记录每个区域的热度值,通过比较每一个磁盘块对应的区域热度值,筛选出整个磁盘中访问频率最高的区域块保存在缓存中,提高了缓存命中率;同时减少了缓存写满后的替换操作,从而减少了对固态硬盘的写操作,与现有的将非频繁访问的数据块写入缓存的缓存管理方法相比,在延长固态硬盘的使用寿命方面,具有很好的效果;
[0033](2)本发明提出的基于区域热度的缓存管理方法,相比以磁盘块为单位计算热点数据,以区域为单位计算热度可以加速热度积累过程,进一步减少了积累过程引起的不必要的替换操作,由此利用区域热度来决定缓存是否替换,不仅可以提高热点数据识别的准确性,还能加速热度的积累过程。
【附图说明】
[0034]图1是本发明实施例1的方法应用的系统的示意图;
[0035]图2是本发明实施例1提供的缓存管理方法的实施流程图;
[0036]图3是本发明实施例1的缓存数据块筛选流程图;
[0037]图4是本发明实施例1的缓存命中率与其它方法的对比图;
[0038]图5是本发明实施例1的缓存替换与其它方法的对比图。
【具体实施方式】
[0039]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0040]本发明提供的基于区域热度的缓存管理方法优选的应用在如图1所示的以固态硬盘作为缓存介质的存储系统上,但其应用不限于此
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1