[发明专利]一种基于区域热度的缓存管理方法有效
申请号: | 201510187454.9 | 申请日: | 2015-04-21 |
公开(公告)号: | CN104794064B | 公开(公告)日: | 2017-09-29 |
发明(设计)人: | 陈俭喜;冯丹;李洁琼;叶锋;梅林军;吴婵明;方雪娇 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区域 热度 缓存 管理 方法 | ||
技术领域
本发明属于计算机信息存储技术领域,更具体地,涉及一种基于区域热度的缓存管理方法。
背景技术
磁盘在读写数据时的寻道和定位等机械操作产生了旋转延迟,使得磁盘响应速度远远慢于内存,由此造成了整个存储系统的性能瓶颈。为了提高系统存储速度,在磁盘与内存之间添加一层可以高速地存取数据缓存设备;磁盘存储系统中缓存的作用就是通过存储磁盘中被频繁访问的热点数据加速磁盘的存取速度,那么这些热点数据就可以直接从缓存中读取,缩短了数据响应时间,提高整个磁盘存储系统的性能,但是能够进行高速数据存取的缓存设备一般价格比较高昂且缓存容量有限。缓存管理就是要充分利用有限的缓存容量来存储尽可能多的热点数据,提高缓存设备利用率,以提高整个磁盘存储系统的性能。与传统磁盘相比,固态硬盘(SSD)是一种电子设备,无机械旋转操作引起的延迟,具有随机I/O性能高,能耗低,噪声小,抗震性好的优点,但容量小,成本高,而且擦除次数有限,有使用寿命的限制;很多存储产品中采用混合存储的模式,将固态硬盘作为磁盘的二级缓存。
为了提高缓存命中率、延长SSD使用寿命,传统的缓存替换算法主要考虑访问的时间局部性和热数据,而热数据的统计方法主要是基于单位周期内每一块的访问量,这些方法不适合直接应用于基于SSD的磁盘缓存;首先,SSD作为二级缓存相对于一级缓存(内存),具有较弱的时间局部性;其次,大量研究表明缓存热数据和基于访问频率的替换(FBR)算法要优于像LRU这种基于时间局部性的算法;然而,热数据的统计一般是基于磁盘块的访问频率,这就需要一个热度计算过程,在热度计算过程中可能会引起热数据之间或冷热数据之间的频繁替换,不仅会影响性能,还造成对SSD大量的写,缩短了SSD的使用寿命。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于区域热度的缓存管理方法,其目的在于通过对数据块的筛选,只缓存热点数据块,减少了缓存写满后的替换操作,由此提高缓存命中率、延长SSD使用寿命。
为实现上述目的,按照本发明的一个方面,提供了一种基于区域热度的缓存管理方法,具体如下:
(1)在内存中创建哈希表和二叉树,并初始化哈希表和二叉树;采用哈希表记录磁盘区域号、每个磁盘区域对应的热度值以及两个指向左右子区域的指针;采用二叉树保存子区域的热度值;其中,子区域是指每个区域再次被划分后对应的区域;
(2)对于每次读写请求,根据磁盘区域大小和读写请求数据块对应的地址更新哈希表内各区域的热度值;同时按照热度值衰减周期将各区域的热度值减半,并更新二叉树内子区域热度值;
(3)根据区域热度值筛选出频繁访问的数据块,将该数据块里的数据写入缓存;由于磁盘上的大部分热点数据主要分布在几个特定的区域;因此先筛选出这些被频繁访问的数据块,再写入容量有限的缓存中,可提高缓存的命中率,同时减少缓存数据的替换操作,延长固态硬盘缓存的使用寿命。
优选的,步骤(1)中,哈希表大小的初始化值为磁盘块数量除以每个区域大小所获得的值,哈希表项和二叉树的所有初始化值都为0。
优选的,步骤(2)中,更新区域热度值的过程具体如下:
(2.1)当一次读写请求到达时,对磁盘进行区域划分,获取区域号;
(2.2)在哈希表中查找区域对应的哈希表项,并将该区域的热度值增加1;
(2.3)若当前总访问次数是热度值衰减周期的整数倍,则将对应的区域热度值减半,同时将对应的子区域热度值减半;
(2.4)当区域热度值减为0,则清空对应的哈希表项,以记录新的区域信息;其中,区域号由逻辑块地址除以区域大小获取。
优选地,步骤(3)根据区域热度值筛选出频繁访问的数据块的过程具体如下:
(3.1)判断请求数据是否命中缓存;若是,则进入步骤(3.10);若否,则进入步骤(3.2);
(3.2)判断缓存是否已写满;若是,进入步骤(3.4);若否,则进入步骤(3.3);
(3.3)将请求数据写入空闲缓存块,形成请求数据块,并将请求数据块插入缓存块队列尾部,然后进入步骤(3.10);
(3.4)从缓存队列的头部开始,按照先进先出的原则,获取一个缓存块,然后进入步骤(3.5);
(3.5)判断请求数据块与步骤(3.4)中获取的缓存块是否属于同一区域;若是,则进入步骤(3.6);若否,则进入步骤(3.7);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510187454.9/2.html,转载请声明来源钻瓜专利网。