[发明专利]一种Cache异步淘汰的方法和装置有效
申请号: | 200810089980.1 | 申请日: | 2008-04-14 |
公开(公告)号: | CN101561783A | 公开(公告)日: | 2009-10-21 |
发明(设计)人: | 杨含飞 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/50 |
代理公司: | 北京挺立专利事务所 | 代理人: | 叶树明 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cache 异步 淘汰 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种Cache异步淘汰的方法和装置。
背景技术
Cache(缓存)一般是为了提高程序的性能而将一些的对象保存起来进行 重用的一种方法,具有如下特性:多线程共享使用、具有一定的容量、容量 的局限引起Cache数据淘汰。
多线程共享使用决定了Cache应该是线程安全的,同时只对一个线程提 供服务。容量的特性决定了Cache需要根据一定的规则淘汰掉一些权重较低 的对象。对于一些应用场景,在淘汰一个对象并对对象进行资源释放的时候 往往需要消耗较多的计算机资源。
Cache中的对象关闭有两种情况。第一种是在Cache里的对象被淘汰掉的 时候,被淘汰掉的对象需要进行关闭以释放资源。在现有的技术方案下,为 了能让Cache正常工作,不产生并发性问题,往往要等待当前调用线程完成 对象的淘汰及资源释放后,Cache才会释放给其他线程使用。因此在进行对象 淘汰时,如果这个对象关闭及资源释放需要占用大量的CPU时间会导致其他 线程花很多的时间等待,不能充分利用CPU资源,整个程序的并发性会随之 下降,使用Cache来提高程序执行性能的目的不能有效实现。
第二种Cache中的对象关闭是在进行Cache刷新或者Cache关闭时发生 的,在现有的技术中,要完成Cache中对象的关闭及资源释放由单线程完成 的,在一些要求进行快速Cache刷新或关闭的场景中,单线程方式使Cache 里的对象关闭及资源释放都在串行的方式下完成,不能快速关闭对象。
发明人在实现本发明的过程中,发现现有技术至少存在以下问题:
现有技术中,一般淘汰对象是调用线程在添加对象到Cache中,同时发 现一个对象需要被淘汰时,由调用线程直接来完成对象的淘汰及资源释放工 作。由于Cache的线程同步特性,使得一个线程在进行对象淘汰的时候,另 外一个线程只能等待,导致Cache的性能严重的下降,使Cache不能有效的 提供服务。
发明内容
本发明提供一种Cache异步淘汰的方法和装置,以有效的解决Cache在 关闭其中的对象及释放相关资源引起的性能损耗问题。
为解决上述问题,本发明提供一种Cache异步淘汰的方法,包括以下步 骤:
获取回收区中淘汰对象的占用空间情况;
比较所述淘汰对象的占用空间情况与预先设定的门限值;
所述淘汰对象的占用空间情况大于所述门限值时,关闭所述回收区中的 淘汰对象。
所述回收区具体为二级Cache,被放入到所述回收区中的淘汰对象等待关 闭或重新被回收利用。
所述获取回收区中淘汰对象的占用空间情况的步骤前还包括:一级Cache 容量已满时,将淘汰对象放置到回收区中。
所述关闭所述回收区的淘汰对象步骤具体为:调整关闭淘汰对象的线程 数目,从回收区中移除淘汰对象,并释放所述淘汰对象占用的资源。所述一 定数目的线程之间以并行的方式关闭淘汰对象。
所述关闭所述回收区中的淘汰对象步骤具体为:按照淘汰对象放入回收 区中的顺序关闭淘汰顺序优先的对象。
所述调整关闭淘汰对象的线程具体为:根据需要淘汰对象的数量在预先 设定线程数量的范围内调整线程的数量。
所述回收区中的空间未满时,由所述线程在后台以异步并行的方式关闭 淘汰对象,调用线程不参与淘汰对象的关闭。所述回收区中的空间已满时, 由调用线程直接关闭当前从一级Cache里淘汰的对象。
为达上述目的,本发明一种Cache异步淘汰的装置,包括:
获取模块,用于获取回收区中淘汰对象的占用空间情况;
比较模块,用于比较获取模块获取的淘汰对象占用空间情况与预先设定 的门限值;
对象关闭模块,用于当获取模块获取到淘汰对象占用的空间情况大于预 先设定的门限值时,关闭所述回收区中的淘汰对象。
所述对象关闭模块进一步包括:
对象顺序检测子模块,用于检测淘汰对象放入回收区中的顺序;
线程控制子模块,用于在预先设定的范围内调整关闭淘汰对象线程的数 量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810089980.1/2.html,转载请声明来源钻瓜专利网。