【技术实现步骤摘要】
一种基于分类预测的自适应分段缓存方法及系统
[0001]本专利技术属于计算机存储
,更具体地,涉及一种基于分类预测的自适应分段缓存方法及系统。
技术介绍
[0002]随着移动互联网产业的迅猛发展,对象服务提供商正面临着存储、传输和处理海量对象带来的严峻挑战。实际应用中,最常见的传统缓存置换策略不仅难以得到高缓存命中率,还可能会出现缓存污染等问题,即缓存中包含不经常被访问的对象。
[0003]近年来,许多研究者尝试利用机器学习技术来制定缓存预取、缓存准入和淘汰等智能缓存策略。优秀的缓存策略不仅可以减少用户访问时间,还可以提高系统在海量数据传输中的性能。现有的研究者们主要采用机器学习算法(如支持向量机、随机森林、朴素贝叶斯)来实现缓存预取、准入、淘汰等智能缓存策略。
[0004]然而,现有基于机器学习算法的智能缓存策略都没有充分利用数据访问特点来优化缓存空间的配置管理,系统缓存资源没有得到最大化利用,因此会导致缓存命中率低,并会增加网络带宽的消耗、以及用户访问的延时。
技术实现思路
[0005]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于分类预测的自适应分段缓存方法及系统,其目的在于,充分利用数据访问特点来优化缓存空间的配置管理,提升缓存管理策略的缓存命中率和缓存字节命中率,从而解决现有基于机器学习算法的智能缓存策略由于系统缓存资源没有得到最大化利用,导致缓存命中率低,并增加网络带宽的消耗、以及用户访问的延时的技术问题。
[0006]为实现上述目的,按照本专利技
【技术保护点】
【技术特征摘要】
1.一种基于分类预测的自适应分段缓存方法,其特征在于,包括以下步骤:(1)接收来自用户的访问请求,并根据该访问请求判断对应的对象是否处于缓存中,如果是则转入步骤(2),否则转入步骤(7);其中缓存包括三段S1、S2和S3;(2)判断对象是否位于缓存的第一段S1中,如果是则将该对象移动到该第一段S1的头部,过程结束,否则转入步骤(3);(3)判断对象是否位于缓存的第二段S2中,如果是转入步骤(4),否则转入步骤(5);(4)判断该对象的访问频率是否大于等于预设的访问频率阈值thr1,如果是则将该对象移动到缓存的第一段S1的头部,过程结束,否则将该对象移动到缓存的第二段S2的头部,过程结束。(5)判断该对象是否位于缓存的第三段S3中,如果是转入步骤(6),否则转入步骤(7);(6)判断该对象的访问频率是否大于等于预设的访问频率阈值thr2,如果是则将该对象移动到缓存的第二段S2的头部,然后过程结束,否则将该对象移动到缓存的第三段S3的头部,过程结束;(7)从后台数据库中读取该对象,并确定缓存中是否还有足够的空间存储该对象,如果是则转入步骤(10),否则转入步骤(8);(8)判断缓存的第一段S1或第二段S2的缓存大小是否超过对应的预设长度占比阈值,如果是则将缓存的第一段S1或第二段S2尾部的对象移动到其下一段的头部,并转入步骤(9),否则转入步骤(9);(9)判断缓存的第三段S3的缓存大小是否超过预设长度占比阈值,如果是则将缓存的第三段S3尾部的对象从缓存中删除,然后转入步骤(10),否则转入步骤(10);(10)将步骤(1)得到的访问请求对应的对象输入训练好的AdaBoost分类模型,以得到预测值,并判断该预测值是否大于0,如果是则将该对象移动到缓存的第二段S2的头部,过程结束,否则将该对象移动到缓存的第三段S3的头部,过程结束。2.根据权利要求1或2所述的基于分类预测的自适应分段缓存方法,其特征在于,预设的访问频率阈值thr1的取值范围是5到10之间,优选为5;预设的访问频率阈值thr2的取值范围是1到3之间,优选为2。步骤(8)和(9)中预设长度占比阈值的取值范围是0.1到0.9。3.根据权利要求1至3中任意一项所述的基于分类预测的自适应分段缓存方法,其特征在于,步骤(1)中缓存的三段S1、S2、S3的大小设置是通过以下过程得到的:首先设置第一段缓存S1在整个缓存中的大小占比sr1为0.1到0.9之间,然后设置第二段缓存S2在整个缓存中的大小占比sr2为0.1到0.9之间,随后根据sr1和sr2的值获得第三段缓存S3在整个缓存中的大小占比等于sr3=1
‑
sr1‑
sr2,随后观察随着三段缓存大小的变化,某个时间窗口内的缓存命中率,然后调整sr1、sr2的值,并重复以上过程,直到最终找到使得缓存命中率最大值对应的sr1、sr2以及sr3。4.根据权利要求1所述的基于分类预测的自适应分段缓存方法,其特征在于,步骤(10)中使用的AdaBoost分类模型是通过以下步骤训练得到的:(10
‑
1)获取训练数据集S={(x1,y1),(x2,y2),
…
,(x
n
,y
n
)},其中x
i
是第i个对象的特征,而y
i
是第i个对象的类标号,如果第i个对象实际会被再次访问,则y
i
=1,否则y
i
=
‑
1,其中i∈[1,n],n为训练数据集中对象的总数;
(10
‑
2)将训练数据集S中的每个对象i的权重D1(i)初始化为1/n;(10
‑
3)设置计数器t=1;(10
‑
4)判断t是否大于预设的迭代阈值T,如果是则转入步骤(10
‑
10),否则转入步骤(10
‑
5);(10
‑
5)将训练数据集S中每个对象i的权重D1(i)和特征x
i
输入AdaBoost分类模型,以得到每个特征x
i...
【专利技术属性】
技术研发人员:李春花,伍蔓,周可,孙云清,
申请(专利权)人:深圳市腾讯计算机系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。