一种低开销且无差错的冷热数据识别方法

文档序号:9235380阅读:690来源:国知局
一种低开销且无差错的冷热数据识别方法
【技术领域】
[0001] 本发明属于计算机数据存储技术领域,具体设及通过分组实现低开销且无差错的 快速冷热数据的识别方法。
【背景技术】
[0002] 现实生活中的工作负载(workload)通常呈现出较高的数据访问局部性,即有些 数据会被频繁访问,称为热数据;有些数据则很少或几乎不被访问,称为冷数据。在现代存 储系统的设计中通过考虑数据的冷热,将冷热数据识别出来并分离放置,可W有效提高存 储系统的整体性能。然而,实现该种设计的一个关键问题是需找到一种有效且轻量级(较 小的时空开销)的冷热数据识别方法。美国计算机学会《存储学报》(ACM transactions on Storage (TOS),2006年2卷1期,第22-40页)所介绍的基于多个哈希映射的方法是目前已 有的时空开销较小的冷热数据识别方法。但该方法会出现一定的错误识别(将很少或几乎 不访问的数据识别为热数据),错误识别率会依赖于工作负载的变化,使得其对有些工作负 载并不适用,从而使得引入冷热数据识别分离机制对存储系统性能改进的效果大大减弱。

【发明内容】

[0003] 本发明的目的是提出一种低开销且无差错的冷热数据识别方法,W克服现有方法 的上述缺陷,在保证较小时空开销的前提下,有效识别出冷热数据。
[0004] 本发明低开销且无差错的冷热数据识别方法,其特征在于包括W下步骤:
[0005] 第一步;存储结构设计
[0006] 采用一组记录固定数量元数据项的列表来记录数据页(data page)的历史访问 信息,其中,列表的个数记为K,每个列表中元数据项的个数记为N;元数据记录了数据页的 逻辑页号(Ipn)信息及该逻辑页号对应的数据页的访问频次(counter),分别占用32比特 (bit)和4比特存储空间;当列表存满数据项且有新的元数据项需要添加到列表中时,对列 表使用最近最少使用算法(LRU)来进行元数据项的替换,每个列表记为LRU表;
[0007] 第二步她址分组
[000引存储系统整个逻辑地址空间通过一个哈希函数映射f(x) = X% K,将不同逻辑地 址对应的元数据项分组存放到不同的LRU表中,W实现逻辑页号的分组,其中,K为LRU表 的个数,X为某一数据页的逻辑页号,%为求余操作;
[0009] 第立步;数据页的冷热识别
[0010] 当一个访问请求到达时,首先根据访问请求的逻辑页号计算哈希值来确定其所属 的LRU表,然后在相应的LRU表中查找该逻辑页号对应的元数据项是否存在,如果存在,贝U 将其对应的访问频次值加1后判断访问频次的值是否大于预先定义的阔值,如果是,则将 请求访问的数据视为热数据,否则视为冷数据;可W通过设定多个阔值,将访问请求的访问 频次与多个阔值进行比较,来实现更细粒度的多层级冷热数据识别;在识别结果返回之前 更新相应的LRU表;如果访问请求的逻辑页号存在与相应的LRU表中,则将其元数据项移到 LRU表的表头W维持表的最近最少使用算法特性;如果不存在,则从LRU表的表头至表尾查 找访问频次值为0的元数据项,如果找到该样的项,则将该元数据项前面的元数据项全部 向尾部移一次,然后将访问请求的元数据项插入到LRU表的表头,并设定访问频次值为1, 如果找不到该样的项,则W 50%的概率丢弃LRU表尾部的项,然后将表中的其他元数据项 全部向尾部移一次,插入访问请求的元数据项到LRU表的表头并设定访问频次值为1 ;
[0011] 第四步;时效机制(aging mechanism)
[0012] 元数据项中记录了某一逻辑页号对应的数据页的访问频次,对数据页的访问请求 每来一次,相应元数据项中的访问频次将加1,当访问频次值达到该数据项存储空间所能达 到的最大值15,将不再被增加;每当处理固定数量的请求后,将所有LRU表中元数据项的访 问频次值减半。
[0013] 与传统的冷热数据识别方法相比,本发明低开销且无差错的冷热数据识别算法能 够在较小时空开销下实现有效准确的冷热数据识别,易于扩展成更细粒度的多层级冷热区 分方法,既保证了较低的运行时间开销和较小的空间开销,也避免了热数据的错误识别,适 用于部署到现有存储系统中,并极大地提高系统的整体性能。由于本发明方法采用将逻辑 地址分组映射到不同的LRU表中存放,与传统冷热数据识别方法相比,可W实现较快的识 别过程。在同量级识别时间的前提下,本发明方法保留了访问请求的逻辑页号信息,避免了 热数据的错误识别,较传统冷热数据方法可W实现更好的识别效果。
【附图说明】
[0014] 图1为按照本发明方法识别冷热数据的总体结构示意图。
[0015] 图2为某一时刻LRU表在不同请求到达后的状态更新示意图;
[0016] 图3为LRU表W-定概率移除表尾元数据项的状态更新示意图;
[0017] 图4为进行时效机制处理后LRU表更新示意图。
【具体实施方式】
[0018] 下面结合附图通过具体实施例对本发明低开销且无差错的冷热数据识别方法作 进一步的详细说明。
[0019] 实施例1 ;
[0020] 本发明低开销且无差错的冷热数据识别方法的一个具体实施例的操作过程如 下:
[0021] 第一步;存储结构设计
[0022] 附图1给出了本发明方法一个具体实例实现冷热数据识别的总体结构示意图。该 图1中,右侧竖着的列表的每一行由一个小矩形和小方格组成,构成一个元数据项;每个大 括号包含的4个行构成一个LRU表,用不同图案填充的连续4行对应不同的LRU表,列表最 上方用虚线框围的4个行即对应着LRU表1,下面依次为LRU表2~256 ;存储结构共采用了 256个LRU表,每个表中保留4个元数据项,每个元数据项保留32比特的逻辑页号信息和4 比特的访问频次信息。冷热数据识别的最初阶段将所有LRU表中的逻辑页号初始化为-1, 访问频次值初始化为0。
[0023] 第二步;地址分组过程
[0024] 为减少冷热数据的识别时间,本发明方法将不同逻辑地址的请求映射到不同的 LRU表中,W减少每一次识别数据所查询和移动的元数据项数。如附图1中所示,图中左边 第一方格对应着当前访问请求的逻辑页号X,该方格箭头所指的矩形对应着一个哈希函数, 哈希函数为f(x) =x% 256。哈希函数用于将存储系统的整个逻辑地址空间划分了 256个 组,当每来一条访问请求,即根据请求的逻辑地址(页号)计算其所属的组,然后将对请求 数据的冷热识别过程从所有组转移到其中的一个组上。
[0025] 第=步:数据页的冷热识别过程
[0026] 当识别一个数据页是否为热数据时,本发明方法首先根据上一步的地址分组过程 确定其所属的LRU表,然后在LRU表中查找该数据页对应的元数据项是否存在,如果存在且 访问频次值大于或等于预先设定的阔值,则将其识别为热数据,否则识别为冷数据。附图2 展示了当一个特定请求到达时的冷热数据识别过程及相应的LRU表的更新过程。图2中左 边虚线框中了展示了某一时刻LRU表1的状态,用编号?表示,表中四行记录的元数据分别 为(256,1
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1