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

文档序号:8472901阅读:来源:国知局
类磁盘存储系统。
[0041]如图2所示,是本发明提供的基于区域热度的缓存管理方法的流程图,通过对未命中缓存的请求数据进行控制,以筛选写入缓存的请求数据,达到减少缓存替换操作的目的。
[0042]以下结合实施例1具体阐述本发明提供的缓存管理方法;实施例1中,采用缓存模拟器Cachesim,以Webproxy(—种网页邮箱代理和在线课程管理负载)应用为例,通过对读写请求数据进行缓存控制,筛选出访问频率最高的区域块并将其保存在缓存中,提高缓存命中率,同时避免不必要的缓存替换操作;具体如下:
[0043](I)创建哈希表和二叉树结构并初始化;采用哈希表记录磁盘区域号、每个磁盘区域对应的热度值以及两个指向左右子区域的指针;采用二叉树保存子区域的热度值;区域大小设为4个磁盘块大小,衰减周期为160万次请求,哈希表大小初始化为磁盘块数量除以区域大小,二叉树深度为2,哈希表项和二叉树结构的所有值都初始化为0,比较因子c为1.4 ;
[0044](2)根据区域大小和衰减周期更新哈希表及二叉树信息:对于每次读写请求,根据磁盘区域大小和读写请求数据块对应的地址更新哈希表内各区域的热度值;同时按照热度值衰减周期将各区域的热度值减半,并更新二叉树内子区域热度值;若热度值减为0,清空对应的哈希表项,以记录新的区域信息;
[0045](3)筛选频繁访问的数据区域写入缓存:根据区域热度值筛选出频繁访问的数据块,将该数据块里的数据写入缓存;
[0046]实际应用负载中,频繁访问的热点数据块只占一少部分,并且磁盘上的大部分热点数据主要分布在几个特定的区域;因此先筛选出这些被频繁访问的数据区域,再写入容量有限的缓存中能够提高缓存的命中率,同时减少缓存数据的替换操作,延长固态硬盘缓存的使用寿命;
[0047](4)缓存管理及读写请求重定向。
[0048]其中,步骤(3)中的筛选过程如图3所示,具体如下:
[0049](3.1)判断请求数据是否命中缓存;若是,则进入步骤(3.10);若否,则进入步骤(3.2);
[0050](3.2)判断缓存是否已写满;若是,进入步骤(3.4);若否,则进入步骤(3.3);
[0051](3.3)将请求数据写入空闲缓存块,形成请求数据块,并将请求数据块插入缓存块队列尾部,然后进入步骤(3.10);
[0052](3.4)从缓存队列的头部开始,按照先进先出的原则,获取一个缓存块,然后进入步骤(3.5);
[0053](3.5)判断请求数据块与步骤(3.4)中获取的缓存块是否属于同一区域;若是,则进入步骤(3.6);若否,则进入步骤(3.7);
[0054](3.6)判断请求数据块与缓存数据块是否属于同一子区域,若是,则进入步骤(3.4),从FIFO队列中获取下一个缓存块;若否,则进入步骤(3.7);
[0055](3.7)从哈希表中通过数据块号分别查找缓存块对应的区域热度PrA与请求数据块对应的区域热度PrB ;若PrB大于c*PrA,则进入步骤(3.10);否则,进入步骤(3.8);
[0056](3.8)重复步骤(3.4)?(3.7),直到请求数据块区域热度与缓存队列里所有数据块的区域热度比较完,进入步骤(3.9);
[0057](3.9)将读写请求定向到磁盘对应的地址,将请求数据块写入磁盘;
[0058](3.10)将读写请求定向到当前缓存对应的地址,将请求数据块写入当前选择的缓存块所在的空间。
[0059]图4所示是实施例1命中率的测试结果,其中,RAC代表本发明提供的缓存方法;图5所示实施例1缓存替换次数的测试结果;从测试结果中分析得知,本发明提供的缓存管理方法在命中率和缓存替换两方面明显比其它方法优越:与LARC, ARC, MQ, FIFO和LRU这些方法相比,不仅提高了命中率同时减少了缓存替换操作;由于减少了大量不必要的缓存替换,因此减少了对SSD的写次数,由此延长了 SSD的使用寿命。
[0060]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于区域热度的缓存管理方法,其特征在于,具体如下: (1)在内存中创建哈希表和二叉树,并初始化哈希表和二叉树;采用哈希表记录磁盘区域号、每个磁盘区域对应的热度值以及两个指向左右子区域的指针;采用二叉树保存子区域的热度值; (2)对于每次读写请求,根据磁盘区域大小和读写请求数据块对应的地址更新哈希表内各区域的热度值;同时按照热度值衰减周期将各区域的热度值减半,并更新二叉树内子区域热度值; (3)根据区域热度值筛选出频繁访问的数据块,将该数据块里的数据写入缓存。
2.如权利要求1所述的缓存管理方法,其特征在于,所述步骤(I)中,哈希表大小的初始化值为磁盘块数量除以每个区域大小所获得的值,哈希表项和二叉树的所有初始化值均为O。
3.如权利要求1或2所述的缓存管理方法,其特征在于,所述步骤(2)中,更新区域热度值的过程具体如下: (2.1)当一次读写请求到达时,对磁盘进行区域划分,获取区域号; (2.2)在哈希表中查找区域对应的哈希表项,并将该区域的热度值增加I ; (2.3)若当前总访问次数是热度值衰减周期的整数倍,则将对应的区域热度值减半,同时将对应的子区域热度值减半; (2.4)当区域热度值减为0,则清空对应的哈希表项,以记录新的区域信息;其中,区域号由逻辑块地址除以区域大小获取。
4.如权利要求1至3任一项所述的缓存管理方法,其特征在于,所述步骤(3)根据区域热度值筛选出频繁访问的数据块的过程具体如下: (3.1)判断请求数据是否命中缓存;若是,则进入步骤(3.10);若否,则进入步骤(3.2); (3.2)判断缓存是否已写满;若是,进入步骤(3.4);若否,则进入步骤(3.3); (3.3)将请求数据写入空闲缓存块,形成请求数据块,并将请求数据块插入缓存块队列尾部,然后进入步骤(3.10); (3.4)从缓存队列的头部开始,按照先进先出的原则,获取一个缓存块,然后进入步骤(3.5); (3.5)判断请求数据块与获取的缓存块是否属于同一区域;若是,则进入步骤(3.6);若否,则进入步骤(3.7); (3.6)判断请求数据块与缓存数据块是否属于同一子区域,若是,则进入步骤(3.4),从缓存队列中获取下一个缓存块;若否,则进入步骤(3.7); (3.7)从哈希表中通过数据块号分别查找缓存块对应的区域热度PrA与请求数据块对应的区域热度PrB ;gPrB大于c*PrA,则进入步骤(3.10);否则,进入步骤(3.8);其中c为比较因子; (3.8)重复步骤(3.4)?(3.7),直到请求数据块区域热度与缓存队列里所有数据块的区域热度比较完,进入步骤(3.9); (3.9)将读写请求定向到磁盘对应的地址,将请求数据块写入磁盘; (3.10)将读写请求定向到当前缓存对应的地址,将请求数据块写入当前选择的缓存块所在的空间。
5.如权利要求4所述的缓存管理方法,其特征在于,比较因子c取大于I的值。
6.如权利要求4或5所述的缓存管理方法,其特征在于,将每个磁盘区域进一步划分成两个相等的子区域,并通过二叉树来管理所述子区域。
【专利摘要】本发明公开了一种基于区域热度的缓存管理方法,通过对数据块的筛选,只缓存热点数据块,减少了缓存写满后的替换操作,由此提高缓存命中率、延长SSD使用寿命;具体包括:(1)创建哈希表和二叉树并初始化,记录磁盘区域号、各磁盘区域对应的热度值、两个指向左右子区域的指针以及子区域的热度值;(2)对于每次读写请求,根据磁盘区域大小和读写请求数据块对应的地址更新哈希表及二叉树信息;(3)根据区域热度值筛选出频繁访问的数据块,将该数据块里的数据写入缓存;通过本发明提供的先筛选再写入的缓存管理方法,可提高缓存的命中率,减少缓存数据的替换操作,延长固态硬盘缓存的使用寿命。
【IPC分类】G06F12-06
【公开号】CN104794064
【申请号】CN201510187454
【发明人】陈俭喜, 冯丹, 李洁琼, 叶锋, 梅林军, 吴婵明, 方雪娇
【申请人】华中科技大学
【公开日】2015年7月22日
【申请日】2015年4月21日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1