CN104021226A - 预取规则的更新方法及装置 - Google Patents
预取规则的更新方法及装置 Download PDFInfo
- Publication number
- CN104021226A CN104021226A CN201410291124.XA CN201410291124A CN104021226A CN 104021226 A CN104021226 A CN 104021226A CN 201410291124 A CN201410291124 A CN 201410291124A CN 104021226 A CN104021226 A CN 104021226A
- Authority
- CN
- China
- Prior art keywords
- prefetch rules
- utilization rate
- prefetch
- subset
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种预取规则的更新方法及装置,该方法包括:获取预设数量的访问请求,根据预设数量的访问请求,得到预取规则子集;将预取规则子集添加到预取规则集中,以更新预取规则集,预取规则子集中包括多个预取规则;判断预取规则集中的预取规则子集超过预设数量,根据预取规则集中的各预取规则子集的使用率,删除预取规则集中使用率满足预设条件的预取规则子集。本发明实施例可以提高缓存命中率。
Description
技术领域
本发明实施例涉及存储技术,尤其涉及一种预取规则的更新方法及装置。
背景技术
随着计算机技术的迅速发展,计算机硬件的处理速度提高非常快。然而,存储设备的性能提升却始终跟不上计算机硬件的处理速度,并且两者的距离在逐渐增大。为了提高存储设备的性能,在读取数据时,基于预取的方式,先将请求的数据读取到缓存中,从而有效减少响应时间,提高命中率。
现有技术中,基于频繁序列的预取一般是将一段时间访问请求作为样本,然后对这段样本进行学习,生成一个基于这段样本的预取规则,根据生成的预取规则将访问请求的相关数据预先读取到缓存中,可以提高之后的访问请求在缓存中的命中率,减少CPU等设备的等待时间。
然而,对代表性的请求轨迹图形化的分析表明:请求轨迹并不是均匀分布的,而是表现为段状的分布模式。现有技术中如果仅仅在开始的时候对样本进行学习,随着时间的推移,预取命中率将越来越差,并给缓存设备带来额外的负担。
发明内容
本发明实施例提供一种预取规则的更新方法及装置,以提高缓存中率。
第一方面,本发明实施例提供一种预取规则的更新方法,包括:
获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
将所述预取规则子集添加到预取规则集中,以更新所述预取规则集,所述预取规则子集中包括多个预取规则;
判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集之前,还包括:
根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率;其中,所述第二历史时间段在所述第一历史时间段之前;
所述根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集,包括:
根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率,包括:
获取所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,根据公式(1)确定各所述预取规则子集的当前时间的加权使用率:
URaverage=URprev×(1-W)+UR×W (1)
其中,URaverage为当前时间的加权使用率,URprev为第二历史时间段的加权使用率,UR为第一历史时间段的使用率,W为第一历史时间段的使用率的权重。
结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述预取规则子集在第一历史时间段的使用率与所述预取规则子集在第一历史时间段的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
加权使用率最低的条件;
加权使用率小于预设使用率的条件;
加权使用率在所有使用率中排在预设排名之后的条件。
结合第一方面的第一种至第三种任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一历史时间段的时长与第一轮预取规则子集的生成时长相等;所述第二历史时间段的时长与第二轮预取规则子集的生成时长相等。
结合第一方面,在第一方面的第五种可能的实现方式中,所述预取规则子集的使用率与所述预取规则子集的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
使用率最低的条件;
使用率小于预设使用率的条件;
使用率在所有使用率中排在预设排名之后的条件。
结合第一方面、第一方面的第一种至第五种任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据所述预设数量的访问请求,得到预设规则子集,包括:
根据预设数量的访问请求和预取预测算法,得到预设规则子集。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述预取预测算法具体为如下中的任一:
基于数据挖掘的预测算法;
基于概率的预测算法;
基于流行度的预测算法。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述方法还包括:
获取所述当前访问请求,根据所述当前访问请求,判断所述缓存中是否有与所述当前访问请求对应的数据;
若是,从所述缓存中读取与所述当前访问请求对应的数据;
若否,从所述预取规则子集中获取与所述当前访问请求对应的预取规则;根据与所述当前访问请求对应的预取规则,从磁盘中获取与所述当前访问请求对应的数据,并将从磁盘中获取与所述预取规则对应的的数据存储到所述缓存中。
结合第一方面、第一方面的第一种至第八种任一种可能的实现方式,在第一方面的第九种可能的实现方式中,所述获取预设数量的访问请求,包括:
根据预设计数条件,获取预设数量的访问请求;
其中,所述预设计数条件具体为:对获取的访问请求的个数进行计数,在计数值达到预设计数值时,重新开始计数,针对任意一次计数,在计数值达到预设数量时,获取所述预设数量的访问请求。
结合第一方面、第一方面的第一种至第九种任一种可能的实现方式,在第一方面的第十种可能的实现方式中,所述预取规则具体为如下中的任一:
输入输出预取规则;
WEB页面预取规则;
数据库预取规则。
第二方面,本发明实施例提供一种预取规则的更新装置,包括:
获取模块,用于获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
更新模块,用于将所述预取规则子集添加到预取规则集中,以更新所述预取规则集,所述预取规则子集中包括多个预取规则;
判断模块,用于判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
计算模块,用于在所述判断模块根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集之前,根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率;其中,所述第二历史时间段在所述第一历史时间段之前;
所述判断模块具体用于:判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述计算模块具体用于:
获取所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,根据公式(1)确定各所述预取规则子集的当前时间的加权使用率:
URaverage=URprev×(1-W)+UR×W(1)
其中,URaverage为当前时间的加权使用率,URprev为第二历史时间段的加权使用率,UR为第一历史时间段的使用率,W为第一历史时间段的使用率的权重。
结合第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述预取规则子集在第一历史时间段的使用率与所述预取规则子集在第一历史时间段的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
加权使用率最低的条件;
加权使用率小于预设使用率的条件;
加权使用率在所有使用率中排在预设排名之后的条件。
结合第二方面的第一种至第三种任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一历史时间段的时长与第一轮预取规则子集的生成时长相等;所述第二历史时间段的时长与第二轮预取规则子集的生成时长相等。
结合第二方面,在第二方面的第五种可能的实现方式中,所述预取规则子集的使用率与所述预取规则子集的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
使用率最低的条件;
使用率小于预设使用率的条件;
使用率在所有使用率中排在预设排名之后的条件。
结合第二方面、第二方面的第一种至第五种任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述获取模块具体用于:
获取预设数量的访问请求,根据预设数量的访问请求和预取预测算法,得到预设规则子集。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述预取预测算法具体为如下中的任一:
基于数据挖掘的预测算法;
基于概率的预测算法;
基于流行度的预测算法。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,还包括:
规则使用模块,用于获取所述当前访问请求,根据所述当前访问请求,判断所述缓存中是否有与所述当前访问请求对应的数据;
若是,从所述缓存中读取与所述当前访问请求对应的数据;
若否,从所述预取规则子集中获取与所述当前访问请求对应的预取规则;根据与所述当前访问请求对应的预取规则,从磁盘中获取与所述当前访问请求对应的数据,并将从磁盘中获取与所述预取规则对应的的数据存储到所述缓存中。
结合第二方面、第二方面的第一种至第八种任一种可能的实现方式,在第二方面的第九种可能的实现方式中,所述获取模块具体用于:
根据预设计数条件,获取预设数量的访问请求;
其中,所述预设计数条件具体为:对获取的访问请求的个数进行计数,在计数值达到预设计数值时,重新开始计数,针对任意一次计数,在计数值达到预设数量时,获取所述预设数量的访问请求。
结合第二方面、第二方面的第一种至第九种任一种可能的实现方式,在第二方面的第十种可能的实现方式中,所述预取规则具体为如下中的任一:
输入输出预取规则;
WEB页面预取规则;
数据库预取规则。
本发明实施例提供的预取规则的更新方法及装置,该方法通过获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;将所述预取规则子集添加到预取规则集中,以更新所述预取规则集;判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集,避免了根据所有的访问请求生成预取规则,而是生成了多个预取规则子集,并不断地对预取规则子集进行自适应更新,不仅减少了时间复杂度,提高了空间利用率,还提高缓存命中率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明预取规则的更新方法实施例一的流程图;
图2为本发明预取规则子集删除示意图;
图3为本发明预取规则的更新方法实施例二的流程图;
图4为本发明预取规则的更新方法实施例三的流程图;
图5为本发明预取规则的更新场景示意图;
图6为本发明预取规则的更新装置实施例一的结构示意图;
图7为本发明预取规则的更新装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明预取规则的更新方法实施例一的流程图。本实施例的执行主体为预取规则的更新装置,该装置可由任意的软件和/或硬件实现。如图1所示,本实施例的方法可以包括:
步骤101、获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
步骤102、将所述预取规则子集添加到预取规则集中,以更新所述预取规则集,所述预取规则子集中包括多个预取规则;
步骤103、判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
在具体实现过程中,在步骤101中,在访问请求访问缓存或磁盘时,记录该访问请求,当访问请求达到预设数量时,根据预设数量的访问请求,得到预取规则子集。
进一步地,根据预设计数条件,获取预设数量的访问请求;
其中,所述预设计数条件具体为:对获取的访问请求的个数进行计数,在计数值达到预设计数值时,重新开始计数,针对任意一次计数,在计数值达到预设数量时,获取所述预设数量的访问请求。
例如,当预设数量为10万条,预设计数值为5万条时,从第1条访问请求开始计数,当访问请求达到10万条时,得到10万条访问请求,根据第1条到第10万条对应的10万条访问请求,得到预取规则子集。再以第5万条开始重新计数一次,当访问请求达到15万条时,得到10万条访问请求,再根据第5万条到第15万条对应的10万条访问请求,得到预取规则子集,以此类推。再例如,当预设数量为10万条,预设计数值为10万条时,得到10万条访问请求,根据第1条到第10万条对应的10万条访问请求,得到预取规则子集。再以第10万零1条开始重新计数一次,当访问请求达到20万条时,得到10万条访问请求,再根据第10万零1条到第20万条对应的10万条访问请求,得到预取规则子集,以此类推。本领域技术人员可以理解,本实施例中,获取预设数量的访问请求为动态的,即随着访问请求个数的增加,得到的预取规则子集也在增加,对于具体的预设数量,以及预设计数值,本实施例此处不再赘述。
在本实施例中,将预设数量的访问请求作为样本,对该样本进行学习,得到预取规则子集。其中,预取规则子集中包括多个预取规则,预设时间段内的访问请求命中所述预取规则子集中的预取规则的命中率与预取规则子集的使用率具有对应关系。
可选地,还可根据预设数量的访问请求和预取预测算法,得到预设规则子集。其中,所述预取预测算法具体为如下中的任一:基于数据挖掘的预测算法;基于概率的预测算法;基于LS模型的预测算法;基于流行度的预测算法。下面分别进行详细说明。
基于数据挖掘的预测算法,对预设数量的访问请求,使用频繁序列挖掘方法对获得的样本进行关联性发掘,然后对获得的关联性信息规则化,得到预取规则子集。
基于概率的预测算法,基于概率的预测模型,使用预设数量的访问请求进行建模。对于访问场景,用户具备集中的偏好和时间性,因而具有一定的规律。基于访问概率的算法定义了用户访问资源F后访问资源E的概率为,通过挖掘访问序列间的概率关系,能够对将要被访问的资源进行预测,得到预取规则子集。
基于流行度的预测算法,在获取到预设数量的访问请求时,根据预设数量的访问请求,统计一定时间内每个条目被访问的次数,同时将被访问次数较多的条目组成流行页面集,得到预取规则子集,根据预取规则子集从流行页面集中预取一定量的数据放在缓存上,预取的数量依据用户近期发出的访问请求量的多少决定。
本领域技术人员可以理解,上述实施例仅是示意性的列出了预取预测算法,对于其他预取预测算法,本实施例此处不做特别限制。
在步骤102中,将预取规则子集添加到预取规则集中,以更新预取规则集。其中,预取规则子集中包括多个预取规则。
可选地,预取规则具体为如下中的任一:输入输出预取规则;WEB页面预取规则;数据库预取规则。
由于预取规则集中的预取规则子集的数量是有限的,因此,在步骤103中,判断预取规则集中的预取规则子集是否超过预设数量,若超过预设数量,则根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
进一步地,预取规则子集的使用率与预取规则子集的命中率具有对应关系,预取规则子集的命中是指任一访问请求命中预取规则子集中的预取规则。具体地,针对任意的一个访问请求,当该访问请求针对10时,查找预取规则子集中的各预取规则,当预取规则1对应的数据为10、14、15时,则该访问请求命中该预取规则1,根据该预取规则1,将10、14、15写入缓存中,此时该预取规则对应的预取规则子集的使用率加1,再后续的访问请求中,很可能直接访问请求14,此时,可直接从缓存中获取14,而不需要从磁盘中获取。
图2为本发明预取规则子集删除示意图。如图2所示,第一步S1中,预取规则集为空,当生成预取规则子集1时,将预取规则子集1添加到预取规则集中,在第二步S2中,预取规则子集2生成时,添加到预取规则集中。在第三步S3(中间省略了其它预取规则子集的添加过程)中,新生成的预取规则子集n添加到预取规则集中,n为整数,此时,预取规则集中的预取规则子集达到了预设数量。在第四步S4中,当预取规则子集添加到预取规则集中时,预取规则子集超出了预设数量,此时,删除使用率满足预设条件的预取规则子集。
可选地,本实施例中的预设条件具体为如下中的任一:使用率最低的条件、使用率小于预设使用率的条件、使用率在所有使用率中排在预设排名之后的条件。
以图2实施例为例,在图2实施例的S4中,预取规则子集2的使用率最低,因此,删除预取规则子集2,此时,将新生成的预取规则子集添加到预取规则集中。本领域技术人员可以理解,如果预设条件为使用率小于预设使用率的条件或使用率在所有使用率中排在预设排名之后的条件,则满足预设条件的预取规则子集可能为多个,删除的预取规则子集也为多个。
本发明实施例提供的预取规则的更新方法,该方法通过获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;将所述预取规则子集添加到预取规则集中,以更新所述预取规则集;判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集,避免了根据所有的访问请求生成预取规则,而是生成了多个预取规则子集,并不断地对预取规则子集进行自适应更新,不仅减少了时间复杂度,提高了空间利用率,还提高缓存命中率。
图3为本发明预取规则的更新方法实施例二的流程图。本实施例在图1实施例的基础上实现,具体如下:
步骤301、获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
步骤302、将所述预取规则子集添加到预取规则集中,以更新所述预取规则集;
步骤303、判断所述预取规则集中的预取规则子集超过预设数量;
步骤304、根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率;
其中,所述第二历史时间段在所述第一历史时间段之前;
步骤305、根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集。
本实施例中的步骤301与图1实施例中的步骤101类似,步骤302与图1实施例中的步骤102类似,本实施例此处不再赘述。
在步骤303中,判断预取规则集中的预取规则子集是否超过预设数量,在超过预设数量之后,执行步骤304。
在步骤304中,根据预取规则集中的各预取规则子集在第一历史时间段的使用率和各预取规则子集在第二历史时间段的加权使用率,确定各预取规则子集的当前时间的加权使用率。
在具体实现过程中,为了使当前时间得到的加权使用率准确可靠,根据当前时间之前的第一历史时间段的使用率和第一历史时间段之前的第二历史时间段的加权使用率得到当前时间的加权使用率。
具体地,获取预取规则集中的各预取规则子集在第一历史时间段的使用率和各预取规则子集在第二历史时间段的加权使用率,根据公式(1)确定各预取规则子集的当前时间的加权使用率:
URaverage=URprev×(1-W)+UR×W (1)
其中,URaverage为当前时间的加权使用率,URprev为第二历史时间段的加权使用率,UR为第一历史时间段的使用率,W为第一历史时间段的使用率的权重。预取规则子集在第一历史时间段的使用率与预取规则子集在第一历史时间段的命中率具有对应关系,预取规则子集的命中是指任一访问请求命中预取规则子集中的预取规则。
在具体实现过程中,对于不存在URprev的预取规则子集,获取其它预取规则子集的URprev,对其它预取规则子集的URprev求平均值,将该平均值作为该预取规则子集在第二历史时间段的加权使用率。在计算结束后,得到当前时间的加权使用率URaverage,本领域技术人员可以理解,当前时间的加权使用率,在经过一段时间之后,即可作为该预取规则子集在第二历史时间段的加权使用率。
在本实施例中,对第一历史时间段和第二历史时间段的时长没有严格的限制,可以根据访问请求的频率设定,也可以根据其他方式确定,例如,第一历史时间段的时长与第一轮预取规则子集的生成时长相等;第二历史时间段的时长与第二轮预取规则子集的生成时长相等。在具体实现过程中,第一历史时间段可以指当前时间之前,进行上一轮生成预取规则子集的时长,第二历史时间段可以指上一轮生成预取规则子集之前,进行一轮生成预取规则子集的时长。
在步骤305中,根据预取规则集中的各预取规则子集的加权使用率,删除预取规则集中加权使用率满足预设条件的预取规则子集。
在本实施例中,加权使用率满足的预取条件与上述相同,可以为加权使用率最低的条件,或加权使用率小于预设使用率的条件,或加权使用率在所有使用率中排在预设排名之后的条件。
本发明提供的实施例,根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率,根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集,将最新的预取规则子集和历史的预取规则子集综合起来,使得在淘汰无用预取规则子集时能够兼顾最新和历史的访问情况,从而做出较好的选择。
图4为本发明预取规则的更新方法实施例三的流程图,本实施例在上述图1至图3实施例的基础上实现,本实施例提供的方法,包括:
步骤401、获取当前访问请求,根据所述当前访问请求,判断所述缓存中是否有与所述当前访问请求对应的数据,若是,执行步骤402,若否,执行步骤403;
步骤402、从所述缓存中读取与所述当前访问请求对应的数据;
步骤403、从所述预取规则子集中获取与所述当前访问请求对应的预取规则;根据与所述当前访问请求对应的预取规则,从磁盘中获取与所述当前访问请求对应的数据,并将从磁盘中获取的与所述预取规则对应的数据存储到所述缓存中。
在图1至图3实施例中,详细说明了预取规则子集的更新过程,对应的为图5中的规则更新模块的作用,在预取规则子集更新后,会根据预取规则子集中的预取规则,从磁盘中预取数据存储到缓存中。下面结合图5,详细说明在获取到当前访问请求时,如何读取数据。图5为本发明预取规则的更新场景示意图。
在图5中,缓存模块存储通过预取规则子集获取的数据。预取模块中存储有预取规则子集,规则更新模块可以对预取模块中存储的预取规则子集进行更新。服务器产生当前访问请求,在步骤401中,缓存模块从服务器中获取当前访问请求,判断缓存模块对应的缓存中是否有与当前访问请求对应的数据,若是,执行步骤402,从缓存模块对应的缓存中读取与当前访问请求对应的数据。若否,执行步骤403,缓存模块从预取模块中存储的预取规则子集中获取与当前访问请求对应的预取规则;缓存模块根据与当前访问请求对应的预取规则,从磁盘中获取与当前访问请求对应的数据,预取模块将从磁盘中获取的数据存储到缓存中。若在步骤403中,从预取规则子集中无法获取与当前访问请求对应的预取规则,则直接从磁盘中获取与当前访问请求对应的数据。
在图4实施例中,由于利用了图1至图3实施例的预取规则更新方法,则从缓存中获取与当前访问请求对应的数据,缓存命中率高。
综上,本发明实施例提供的预取规则更新的方法,在基于频繁序列预取的时间开销上,将原本的访问请求样本划分为多个子访问请求,生成预取规则子集,在原本算法的时间复杂度的基础上,减少了总的时间开销,从而大大加快了预取规则集的生成;由于将预取规则分散到多个预取规则子集中,在空间上可以用较少的空间保存原本的预取规则集;通过加权的方式,将最新的预取规则子集和历史的预取规则子集综合起来,使得在淘汰无用预取规则子集时能够兼顾最新和历史的访问情况,从而做出较好的选择;能够实时地反映的访问情况,根据访问情况适时地调整预取规则集。
图6为本发明预取规则的更新装置实施例一的结构示意图。该预取规则的更新装置60包括:获取模块601、更新模块602和判断模块603。
获取模块601,用于获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
更新模块602,用于将所述预取规则子集添加到预取规则集中,以更新所述预取规则集,所述预取规则子集中包括多个预取规则;
判断模块603,用于判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
图7为本发明预取规则的更新装置实施例二的结构示意图。本实施例在图6实施例的基础上实现,具体如下:
可选地,还包括:
计算模块604,用于在所述判断模块603根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集之前,根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率;其中,所述第二历史时间段在所述第一历史时间段之前;
所述判断模块603具体用于:判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集。
可选地,所述计算模块604具体用于:
获取所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,根据公式(1)确定各所述预取规则子集的当前时间的加权使用率:
URaverage=URprev×(1-W)+UR×W (1)
其中,URaverage为当前时间的加权使用率,URprev为第二历史时间段的加权使用率,UR为第一历史时间段的使用率,W为第一历史时间段的使用率的权重。
可选地,所述预取规则子集在第一历史时间段的使用率与所述预取规则子集在第一历史时间段的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
加权使用率最低的条件;
加权使用率小于预设使用率的条件;
加权使用率在所有使用率中排在预设排名之后的条件。
可选地,所述第一历史时间段的时长与第一轮预取规则子集的生成时长相等;所述第二历史时间段的时长与第二轮预取规则子集的生成时长相等。
可选地,所述预取规则子集的使用率与所述预取规则子集的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
使用率最低的条件;
使用率小于预设使用率的条件;
使用率在所有使用率中排在预设排名之后的条件。
可选地,所述获取模块601具体用于:
获取预设数量的访问请求,根据预设数量的访问请求和预取预测算法,得到预设规则子集。
可选地,所述预取预测算法具体为如下中的任一:
基于数据挖掘的预测算法;
基于概率的预测算法;
基于流行度的预测算法。
可选地,还包括:
规则使用模块605,用于获取所述当前访问请求,根据所述当前访问请求,判断所述缓存中是否有与所述当前访问请求对应的数据;
若是,从所述缓存中读取与所述当前访问请求对应的数据;
若否,从所述预取规则子集中获取与所述当前访问请求对应的预取规则;根据与所述当前访问请求对应的预取规则,从磁盘中获取与所述当前访问请求对应的数据,并将从磁盘中获取与所述预取规则对应的的数据存储到所述缓存中。
可选地,所述获取模块601具体用于:
根据预设计数条件,获取预设数量的访问请求;
其中,所述预设计数条件具体为:对获取的访问请求的个数进行计数,在计数值达到预设计数值时,重新开始计数,针对任意一次计数,在计数值达到预设数量时,获取所述预设数量的访问请求。
可选地,所述预取规则具体为如下中的任一:
输入输出预取规则;
WEB页面预取规则;
数据库预取规则。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (22)
1.一种预取规则的更新方法,其特征在于,包括:
获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
将所述预取规则子集添加到预取规则集中,以更新所述预取规则集,所述预取规则子集中包括多个预取规则;
判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集之前,还包括:
根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率;其中,所述第二历史时间段在所述第一历史时间段之前;
所述根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集,包括:
根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率,包括:
获取所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,根据公式(1)确定各所述预取规则子集的当前时间的加权使用率:
URaverage=URprev×(1-W)+UR×W (1)
其中,URaverage为当前时间的加权使用率,URprev为第二历史时间段的加权使用率,UR为第一历史时间段的使用率,W为第一历史时间段的使用率的权重。
4.根据权利要求2或3所述的方法,其特征在于,所述预取规则子集在第一历史时间段的使用率与所述预取规则子集在第一历史时间段的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
加权使用率最低的条件;
加权使用率小于预设使用率的条件;
加权使用率在所有使用率中排在预设排名之后的条件。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述第一历史时间段的时长与第一轮预取规则子集的生成时长相等;所述第二历史时间段的时长与第二轮预取规则子集的生成时长相等。
6.根据权利要求1所述的方法,其特征在于,所述预取规则子集的使用率与所述预取规则子集的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
使用率最低的条件;
使用率小于预设使用率的条件;
使用率在所有使用率中排在预设排名之后的条件。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述预设数量的访问请求,得到预设规则子集,包括:
根据预设数量的访问请求和预取预测算法,得到预设规则子集。
8.根据权利要求7所述的方法,其特征在于,所述预取预测算法具体为如下中的任一:
基于数据挖掘的预测算法;
基于概率的预测算法;
基于流行度的预测算法。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取所述当前访问请求,根据所述当前访问请求,判断所述缓存中是否有与所述当前访问请求对应的数据;
若是,从所述缓存中读取与所述当前访问请求对应的数据;
若否,从所述预取规则子集中获取与所述当前访问请求对应的预取规则;根据与所述当前访问请求对应的预取规则,从磁盘中获取与所述当前访问请求对应的数据,并将从磁盘中获取与所述预取规则对应的的数据存储到所述缓存中。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述获取预设数量的访问请求,包括:
根据预设计数条件,获取预设数量的访问请求;
其中,所述预设计数条件具体为:对获取的访问请求的个数进行计数,在计数值达到预设计数值时,重新开始计数,针对任意一次计数,在计数值达到预设数量时,获取所述预设数量的访问请求。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述预取规则具体为如下中的任一:
输入输出预取规则;
WEB页面预取规则;
数据库预取规则。
12.一种预取规则的更新装置,其特征在于,包括:
获取模块,用于获取预设数量的访问请求,根据所述预设数量的访问请求,得到预取规则子集;
更新模块,用于将所述预取规则子集添加到预取规则集中,以更新所述预取规则集,所述预取规则子集中包括多个预取规则;
判断模块,用于判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中所述使用率满足预设条件的预取规则子集。
13.根据权利要求12所述的装置,其特征在于,还包括:
计算模块,用于在所述判断模块根据所述预取规则集中的各所述预取规则子集的使用率,删除所述预取规则集中满足预设条件的预取规则子集之前,根据所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,确定各所述预取规则子集的当前时间的加权使用率;其中,所述第二历史时间段在所述第一历史时间段之前;
所述判断模块具体用于:判断所述预取规则集中的预取规则子集超过预设数量,根据所述预取规则集中的各所述预取规则子集的加权使用率,删除所述预取规则集中所述加权使用率满足预设条件的预取规则子集。
14.根据权利要求13所述的装置,其特征在于,所述计算模块具体用于:
获取所述预取规则集中的各所述预取规则子集在第一历史时间段的使用率和各所述预取规则子集在第二历史时间段的加权使用率,根据公式(1)确定各所述预取规则子集的当前时间的加权使用率:
URaverage=URprev×(1-W)+UR×W (1)
其中,URaverage为当前时间的加权使用率,URprev为第二历史时间段的加权使用率,UR为第一历史时间段的使用率,W为第一历史时间段的使用率的权重。
15.根据权利要求13或14所述的装置,其特征在于,所述预取规则子集在第一历史时间段的使用率与所述预取规则子集在第一历史时间段的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
加权使用率最低的条件;
加权使用率小于预设使用率的条件;
加权使用率在所有使用率中排在预设排名之后的条件。
16.根据权利要求13至15任一项所述的装置,其特征在于,所述第一历史时间段的时长与第一轮预取规则子集的生成时长相等;所述第二历史时间段的时长与第二轮预取规则子集的生成时长相等。
17.根据权利要求16所述的装置,其特征在于,所述预取规则子集的使用率与所述预取规则子集的命中率具有对应关系,所述预取规则子集的命中是指任一访问请求命中所述预取规则子集中的预取规则;
所述预设条件具体为如下中的任一:
使用率最低的条件;
使用率小于预设使用率的条件;
使用率在所有使用率中排在预设排名之后的条件。
18.根据权利要求12至17任一项所述的装置,其特征在于,所述获取模块具体用于:
获取预设数量的访问请求,根据预设数量的访问请求和预取预测算法,得到预设规则子集。
19.根据权利要求18所述的装置,其特征在于,所述预取预测算法具体为如下中的任一:
基于数据挖掘的预测算法;
基于概率的预测算法;
基于流行度的预测算法。
20.根据权利要求19所述的装置,其特征在于,还包括:
规则使用模块,用于获取所述当前访问请求,根据所述当前访问请求,判断所述缓存中是否有与所述当前访问请求对应的数据;
若是,从所述缓存中读取与所述当前访问请求对应的数据;
若否,从所述预取规则子集中获取与所述当前访问请求对应的预取规则;根据与所述当前访问请求对应的预取规则,从磁盘中获取与所述当前访问请求对应的数据,并将从磁盘中获取与所述预取规则对应的的数据存储到所述缓存中。
21.根据权利要求12至20任一项所述的装置,其特征在于,所述获取模块具体用于:
根据预设计数条件,获取预设数量的访问请求;
其中,所述预设计数条件具体为:对获取的访问请求的个数进行计数,在计数值达到预设计数值时,重新开始计数,针对任意一次计数,在计数值达到预设数量时,获取所述预设数量的访问请求。
22.根据权利要求12至21任一项所述的装置,其特征在于,所述预取规则具体为如下中的任一:
输入输出预取规则;
WEB页面预取规则;
数据库预取规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410291124.XA CN104021226B (zh) | 2014-06-25 | 2014-06-25 | 预取规则的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410291124.XA CN104021226B (zh) | 2014-06-25 | 2014-06-25 | 预取规则的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021226A true CN104021226A (zh) | 2014-09-03 |
CN104021226B CN104021226B (zh) | 2018-01-02 |
Family
ID=51437980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410291124.XA Active CN104021226B (zh) | 2014-06-25 | 2014-06-25 | 预取规则的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021226B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731974A (zh) * | 2015-04-13 | 2015-06-24 | 上海新炬网络信息技术有限公司 | 基于大数据流式计算的动态页面加载方法 |
CN107247675A (zh) * | 2017-05-31 | 2017-10-13 | 华中科技大学 | 一种基于分类预测的缓存选择方法和系统 |
CN107451160A (zh) * | 2016-06-01 | 2017-12-08 | 广州市动景计算机科技有限公司 | 一种页面预读方法及装置 |
CN110502546A (zh) * | 2019-08-22 | 2019-11-26 | 郑州阿帕斯科技有限公司 | 一种数据处理方法及装置 |
CN111079061A (zh) * | 2019-12-23 | 2020-04-28 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及电子设备 |
CN111382075A (zh) * | 2020-03-10 | 2020-07-07 | 北京同邦卓益科技有限公司 | 一种自动化测试的数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604054A (zh) * | 2003-09-29 | 2005-04-06 | 刘志明 | 层次化视频点播中的磁盘缓存替换算法 |
CN102033769A (zh) * | 2010-12-08 | 2011-04-27 | 北京航空航天大学 | 面向虚拟化软件流式加载的预取方法和系统 |
US20130124803A1 (en) * | 2011-07-22 | 2013-05-16 | International Business Machines Corporation | Prefetching source tracks for destaging updated tracks in a copy relationship |
CN103729438A (zh) * | 2013-12-30 | 2014-04-16 | 优视科技有限公司 | 网页预加载方法及装置 |
-
2014
- 2014-06-25 CN CN201410291124.XA patent/CN104021226B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604054A (zh) * | 2003-09-29 | 2005-04-06 | 刘志明 | 层次化视频点播中的磁盘缓存替换算法 |
CN102033769A (zh) * | 2010-12-08 | 2011-04-27 | 北京航空航天大学 | 面向虚拟化软件流式加载的预取方法和系统 |
US20130124803A1 (en) * | 2011-07-22 | 2013-05-16 | International Business Machines Corporation | Prefetching source tracks for destaging updated tracks in a copy relationship |
CN103729438A (zh) * | 2013-12-30 | 2014-04-16 | 优视科技有限公司 | 网页预加载方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731974A (zh) * | 2015-04-13 | 2015-06-24 | 上海新炬网络信息技术有限公司 | 基于大数据流式计算的动态页面加载方法 |
CN107451160A (zh) * | 2016-06-01 | 2017-12-08 | 广州市动景计算机科技有限公司 | 一种页面预读方法及装置 |
CN107247675A (zh) * | 2017-05-31 | 2017-10-13 | 华中科技大学 | 一种基于分类预测的缓存选择方法和系统 |
CN107247675B (zh) * | 2017-05-31 | 2019-08-20 | 华中科技大学 | 一种基于分类预测的缓存选择方法和系统 |
CN110502546A (zh) * | 2019-08-22 | 2019-11-26 | 郑州阿帕斯科技有限公司 | 一种数据处理方法及装置 |
CN111079061A (zh) * | 2019-12-23 | 2020-04-28 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及电子设备 |
CN111079061B (zh) * | 2019-12-23 | 2024-04-16 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及电子设备 |
CN111382075A (zh) * | 2020-03-10 | 2020-07-07 | 北京同邦卓益科技有限公司 | 一种自动化测试的数据处理方法及装置 |
CN111382075B (zh) * | 2020-03-10 | 2023-09-26 | 北京同邦卓益科技有限公司 | 一种自动化测试的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104021226B (zh) | 2018-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021226A (zh) | 预取规则的更新方法及装置 | |
Wang et al. | Integer-ordered simulation optimization using R-SPLINE: Retrospective search with piecewise-linear interpolation and neighborhood enumeration | |
CN105493053A (zh) | 多核处理器中的高速缓存划分 | |
CN108885579B (zh) | 用于根据核追踪进行数据挖掘的方法和设备 | |
CN110428139A (zh) | 基于标签传播的信息预测方法及装置 | |
CN112051969A (zh) | 一种基于深度强化学习的分级存储数据自适应迁移方法 | |
CN111611390B (zh) | 一种数据处理方法及装置 | |
CN110968564A (zh) | 一种数据处理方法及数据状态预测模型的训练方法 | |
CN106201673A (zh) | 一种地震数据处理方法及装置 | |
CN110674397B (zh) | 年龄点预测模型的训练方法及装置、设备与可读介质 | |
US9785374B2 (en) | Storage device management in computing systems | |
CN113489787B (zh) | 一种移动边缘计算的服务与数据协同迁移的方法和装置 | |
CN103455417B (zh) | 一种基于马尔可夫模型的软件错误定位系统及错误定位方法 | |
CN109582382B (zh) | 配置信息的加载方法、装置、存储介质及终端设备 | |
CN113342418B (zh) | 基于区块链的分布式机器学习任务卸载方法 | |
Park et al. | Memory Access Characteristics of Neural Network Workloads and Their Implications | |
CN102169464B (zh) | 一种用于非易失性存储器的缓存方法、装置及智能卡 | |
CN106250499A (zh) | 一种视频对挖掘方法及装置 | |
CN116476042B (zh) | 基于深度强化学习的机械臂运动学逆解优化方法及装置 | |
CN112115668A (zh) | Fpga布局方法、装置、电子设备和计算机可读介质 | |
US20160253591A1 (en) | Method and apparatus for managing performance of database | |
CN116361205A (zh) | 数据处理装置、确定张量存储地址的方法、设备和介质 | |
CN108446343B (zh) | 区域聚合的方法、装置及电子设备 | |
CN106202374A (zh) | 一种数据处理方法及装置 | |
CN105630967A (zh) | 一种基于gis显示数据的缓存方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |