一种基于分类预测的缓存选择方法和系统与流程

文档序号:11323149阅读:151来源:国知局
一种基于分类预测的缓存选择方法和系统与流程

本发明属于计算机数据存储领域,更具体地,涉及一种基于分类预测的缓存选择方法和系统。



背景技术:

最近基于闪存的固态硬盘(ssd)被广泛部署为缓存设备,以提高缓存系统性能。基于闪存的固态硬盘ssd主要是nand闪存类型的,它的读写功能是基于区块擦除和写入来实现。相比于传统的机械硬盘,基于闪存的固态硬盘具有更低的能耗、更快的速度、更强的抗震性、更高的稳定性等优点,因此这种类型的基于闪存的固态硬盘能应用在各种环境中。

针对固态盘的缓存管理算法在过去几十年中得到了很好的研究,但因为其存在以下的问题,导致其不能直接被用来管理ssd:首先,传统缓存策略在进入dram之前不要对数据进行过滤,允许任何数据进入ssd,这种积极的数据更新策略导致对ssd的写入操作太多,并使其快速磨损,这最终导致企业应用使用ssd的高成本;其次,这种允许任何数据进入缓存的策略也导致了一部分热数据被淘汰出去,这会导致缓存利用率下降。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于分类预测的缓存选择方法和系统,其目的在于,解决现有缓存管理策略中由于对ssd盘的写入操作太多,从而会快速磨损ssd盘并增加ssd盘的使用成本,以及由于使得一部分热数据被淘汰而导致缓存利用率下降的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于分类预测的缓存选择方法,包括以下步骤:

(1)接收来自用户的访问请求,并根据该访问请求判断访问请求对应的请求对象是否已经被缓存,若已经被缓存,则使用缓存替换算法对该访问请求对应的请求对象进行处理,并继续接收来自用户的下一个访问请求,然后重复执行本步骤,否则转入步骤(2);

(2)从底层存储系统读取该请求对象的数据块,并确定缓存中是否还有足够的空间存储该请求对象的数据块,若有则使用缓存替换算法将请求对象放入缓存中,接收来自用户的下一个访问请求,然后返回步骤(1),否则转入步骤(3);

(3)查询请求对象是否不存在于历史信息列表中,若是则转入步骤(4),否则转入步骤(5)。

(4)根据访问对象并使用以下公式计算分类预测函数f,判断分类预测函数的值是否大于0,若是则将访问对象的元数据加入历史信息列表中,接受来自用户的下一条访问请求,并返回步骤(1),否则转入步骤(6):

其中{a1,a2,...,am}为对象特征集合,m表示对象特征的个数,y1表示“只访问一次”类别,y2表示“访问大于一次”类别,p(aj|y1)表示“只访问一次”类别的访问对象中对象特征为aj的概率,p(aj|y2)表示“访问大于一次”类别的访问对象中对象特征为aj的概率,p(y1)表示“只访问一次”类别出现的概率,p(y2)表示“访问大于一次”类别出现的概率,且p(y1)+p(y2)=1;

(5)将访问对象从历史信息列表中移除,并调整“只访问一次”类别出现的概率p(y1),然后转入步骤(6);

(6)使用缓存替换算法将请求对象放入缓存中,并调整“只访问一次”类别出现的概率p(y1),并接收来自用户的下一个访问请求,返回步骤(1)。

优选地,步骤(2)中使用的缓存替换算法与步骤(1)中使用的缓存替换算法相同。

优选地,历史信息列表是在初始化阶段创建的先进先出结构链表。

优选地,以访问对象的访问日志为样本,执行opt算法过程中得到淘汰对象时,查看该淘汰对象的访问次数,若访问次数为1,则该淘汰对象属于“只访问一次”的类别,否则该淘汰对象属于“访问大于一次”的类别。

优选地,对象特征集合{a1,a2,...,am}的构造方式具体为:为访问对象的访问日志中的每一个对象特征对应地绘制对象特征分布图,该图中的横轴为该对象特征值,纵轴为“只访问一次”类型中等于该对象特征值的对象个数,计算得到的所有对象特征分布图的方差,并对这些方差按照从大到小的顺序进行排列,将前m个方差对应的对象特征作为对象特征集合。

优选地,步骤(5)中调整“只访问一次”类别的出现概率p(y1)的过程包括:

(5-1)初始化调整因子p'(y1)和调整个数count均等于0;

(5-2)设置访问对象i的分类预测函数f值为0,并根据f值得到pi(y1);

(5-3)判断是否有p(y1)>pi(y1),如果是则设置调整因子p′(y1)=p′(y1)+pi(y1),调整个数count=count+1,然后转入步骤(5-4),否则过程结束;

(5-4)其中为调整阀值,若是则设置p(y1)=p'(y1)/count,count=0,以及p'(y1)=0,过程结束,否则过程结束。

优选地,步骤(6)中调整“只访问一次”类别的出现概率p(y1)的过程包括:

(6-1)设置使用缓存替换算法淘汰的对象k的分类预测函数f值为0,并根据f值得到pk(y1);

(6-2)判断是否有p(y1)<pk(y1),如果是则设置调整因子p′(y1)=p′(y1)+pk(y1),调整个数count=count+1,然后转入步骤(6-3),否则过程结束;

(6-3)若是则设置p(y1)=p'(y1)/count,count=0,以及p'(y1)=0,然后过程结束,否则过程结束。

按照本发明的另一方面,提供了一种基于分类预测的缓存选择系统,包括:

第一模块,用于接收来自用户的访问请求,并根据该访问请求判断访问请求对应的请求对象是否已经被缓存,若已经被缓存,则使用缓存替换算法对该访问请求对应的请求对象进行处理,并继续接收来自用户的下一个访问请求,然后重复执行本步骤,否则转入第二模块;

第二模块,用于从底层存储系统读取该请求对象的数据块,并确定缓存中是否还有足够的空间存储该请求对象的数据块,若有则使用缓存替换算法将请求对象放入缓存中,接收来自用户的下一个访问请求,然后返回第一模块,否则转入第三模块;

第三模块,用于查询请求对象是否不存在于历史信息列表中,若是则转入第四模块,否则转入第五模块;

第四模块,用于根据访问对象并使用以下公式计算分类预测函数f,判断分类预测函数的值是否大于0,若是则将访问对象的元数据加入历史信息列表中,接受来自用户的下一条访问请求,并返回第一模块,否则转入第六模块:

其中{a1,a2,...,am}为对象特征集合,m表示对象特征的个数,y1表示“只访问一次”类别,y2表示“访问大于一次”类别,p(aj|y1)表示“只访问一次”类别的访问对象中对象特征为aj的概率,p(aj|y2)表示“访问大于一次”类别的访问对象中对象特征为aj的概率,p(y1)表示“只访问一次”类别出现的概率,p(y2)表示“访问大于一次”类别出现的概率,且p(y1)+p(y2)=1;

第五模块,用于将访问对象从历史信息列表中移除,并调整“只访问一次”类别出现的概率p(y1),然后转入第六模块;

第六模块,用于使用缓存替换算法将请求对象放入缓存中,并调整“只访问一次”类别出现的概率p(y1),并接收来自用户的下一个访问请求,返回第一模块。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

1、由于采用了步骤(3)到步骤(6),能够避免“只访问一次”的数据进入缓存,从而提高了缓存的有效容量,从而能够解决现有缓存管理策略中由于对ssd盘的写入操作太多,而快速磨损ssd盘并增加ssd盘的使用成本的技术问题,以及由于使得一部分热数据被淘汰,而导致缓存利用率下降的技术问题:

2、由于本发明并不是把所有访问的数据都移入缓存,大大避免了无效写入,直接减少ssd盘的写入次数,由于固态盘的寿命与它所经历的写的次数成反比,因此本发明能够延长固态盘的寿命。

3、本发明不会影响算法时间复杂度:由于预测函数f为离线确定,并且在动态调整参数时,可以与缓存替换并行,因此不影响算法时间复杂度。

附图说明

图1是本发明基于分类预测的缓存选择策略的实现架构图。

图2是本发明基于分类预测的缓存选择方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

缓存选择策略是延长ssd寿命的有效策略。其主要思想是用来决策当读取缓存发生读缺失时,是否需要将新对象移入缓存。传统的缓存策略并不存在“选择”的问题。然而,随着大数据时代的来临,数据访问模式的变化,私有数据越来越多,短时间内出现大量仅被访问一次的数据,这些无效数据的写入不仅降低了缓存效率,也缩短了ssd的寿命。

如图1所示,基于分类预测的缓存选择策略的实现架构主要包含三个部分:缓存、历史信息列表及缓存分类预测器,其中,缓存还包含了缓存信息表。需要说明的是,本策略并不涉及后端具体的存储系统,主要实现在用户请求与后端存储中间的缓存层面。

图1所示系统的工作流程包括以下步骤:

(1)由客户端发起请求,缓存接收用户的请求,检查缓存中是否缓存该对象;

(2)如果缓存命中,将对象内容传送到客户端,过程结束,否则转步骤(3);

(3)缓存向后端存储系统发起请求,后端存储系统将对象信息与内容传送到分类预测器。分类预测器结合历史信息列表做出判断,若不需要缓存,将信息记录到历史信息列表、并将对象内容通过缓存传送到客户端,结束;否则转步骤(4);

(4)通过缓存替换算法,移除缓存中的对象,腾出缓存空间来缓存用户请求的对象,缓存对缓存分类器负反馈并将对象内容传送到客户端。

从系统工作流程可以看出,相较于传统的缓存工作流程,我们増加了对对象是否可以进入缓存进行分类预测,从而减少“只访问一次”的对象进入缓存的概率。此外,缓存分类预测器是基于离线的分类策略,虽然在精度上略有损失,并不能完全分类正确,但可以在不增加缓存请求时间的情况下增大缓存利用率。

如图2所示,本发明基于分类预测的缓存选择方法包括以下步骤:

(1)接收来自用户的访问请求,并根据该访问请求判断访问请求对应的请求对象是否已经被缓存,若已经被缓存,则使用缓存替换算法对该访问请求对应的请求对象进行处理,并继续接收来自用户的下一个访问请求,然后重复执行本步骤,否则转入步骤(2);

具体而言,本步骤中使用的缓存替换算法可以是诸如,近期最少使用(leastrecentlyused,简称lru)缓存替换算法、最近最不常用(leastfrequentlyused,lfu)缓存替换算法等。

(2)从底层存储系统读取该请求对象的数据块,并确定缓存中是否还有足够的空间存储该请求对象的数据块,若有则使用缓存替换算法将请求对象放入缓存中,接收来自用户的下一个访问请求,然后返回步骤(1),否则转入步骤(3);

具体而言,本步骤中使用的缓存替换算法与步骤(1)中所使用的缓存替换算法完全相同。

(3)查询请求对象是否不存在于历史信息列表中,若是则转入步骤(4),否则转入步骤(5)。

本步骤的优点在于,使用历史信息列表,使得短时间内被连续访问的请求对象不经过预测而直接进入缓存,从而减少了请求对象的类型被误判的可能性。

具体而言,历史信息列表是在初始化阶段创建的先进先出(firstinfirstout,简称fifo)结构链表。

(4)根据访问对象并使用以下公式计算分类预测函数f,判断分类预测函数的值是否大于0,若是则将访问对象的元数据加入历史信息列表中,接受来自用户的下一条访问请求,并返回步骤(1),否则转入步骤(6):

其中{a1,a2,...,am}为对象特征集合,m表示对象特征的个数,y1表示“只访问一次”类别,y2表示“访问大于一次”类别,p(aj|y1)表示“只访问一次”类别的访问对象中对象特征为aj的概率,p(aj|y2)表示“访问大于一次”类别的访问对象中对象特征为aj的概率,p(y1)表示“只访问一次”类别出现的概率,p(y2)表示“访问大于一次”类别出现的概率,且p(y1)+p(y2)=1;

在本发明中,以访问对象的访问日志为样本,执行最优替换算法(optimalreplacement,简称opt)过程中得到淘汰对象时,查看该淘汰对象的访问次数,若访问次数为1,则该淘汰对象属于“只访问一次”的类别,否则该淘汰对象属于“访问大于一次”的类别。

对象特征集合{a1,a2,...,am}的构造方式具体为:为访问对象的访问日志中的每一个对象特征对应地绘制对象特征分布图,该图中的横轴为该对象特征值,纵轴为“只访问一次”类型中等于该对象特征值的对象个数,计算得到的所有对象特征分布图的方差,并对这些方差按照从大到小的顺序进行排列,将前m个方差对应的对象特征作为对象特征集合,其中m的取值是由访问对象的特征决定,例如,如果访问对象是图片,则a1为图片大小,a2为图片类型,a3为图片的访问时间,此时m=3。

本步骤的优点在于,过滤掉属于“只访问一次”类别的访问对象,从而减少ssd盘的无效写入。

(5)将访问对象从历史信息列表中移除,并调整“只访问一次”类别出现的概率p(y1),转入步骤(6);

具体而言,调整“只访问一次”的p(y1)策略是:

(5-1)初始化调整因子p'(y1)和调整个数count均等于0;

(5-2)设置访问对象i的分类预测函数f值为0,根据上式(1)得到pi(y1);

(5-3)判断是否有p(y1)>pi(y1),如果是则设置调整因子p′(y1)=p′(y1)+pi(y1),调整个数count=count+1,然后转入步骤(5-4),否则过程结束;

(5-4)其中为调整阀值(其取值范围是0-1),若是则设置p(y1)=p'(y1)/count,count=0,以及p'(y1)=0,过程结束,否则过程结束。

(6)使用缓存替换算法将请求对象放入缓存中,并调整“只访问一次”类别出现的概率p(y1),并接收来自用户的下一个访问请求,返回步骤(1);

具体而言,调整“只访问一次”的p(y1)策略是:

(6-1)设置使用缓存替换算法淘汰的对象k的分类预测函数f值为0,根据上式(1)得到pk(y1);

(6-2)判断是否有p(y1)<pk(y1),如果是则设置调整因子p′(y1)=p′(y1)+pk(y1),调整个数count=count+1,然后转入步骤(6-3),否则过程结束;

(6-3)若是则设置p(y1)=p'(y1)/count,count=0,以及p'(y1)=0,然后过程结束,否则过程结束。

本步骤的优点在于,实时调整“只访问一次”的概率,即预测函数根据缓存实时情况动态调整,更有效地利用缓存空间。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1