[发明专利]一种缓存控制方法和系统有效
申请号: | 201310172568.7 | 申请日: | 2013-05-10 |
公开(公告)号: | CN104142896B | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 杨琦 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F12/0806 | 分类号: | G06F12/0806 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 解婷婷,栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 控制 方法 系统 | ||
技术领域
本申请涉及计算机领域,尤其涉及一种缓存控制方法和系统。
背景技术
现有技术中,一般存在两种缓存方法:
一种是本地缓存:数据保存在本地服务器的内存上,访问时走的仅是系统总线,速度快。如开源的EhCache、googel MemCached、OSCache。本地缓存与应用一起部署,会占用应用服务器较多内存空间。
另一种是分布式缓存:应用把需缓存的数据通过网络,存放在分布式缓存服务器上。也可以建立缓存服务器集群,缓存空间理论上足够大;并且不占用应用服务器内存空间。分布式缓存需要通过网络进行交互,占用网络带宽,另外,有序列化数据的计算性能消耗,性能较差。
对于本地缓存,数据发生变更时,一般的实现都是通过消息通知让集群内所有CACHE(缓存)中的相关数据失效。当再次需要相关数据时,各服务器到数据源获取数据,并放入CACHE中。该方法不能实现缓存数据的及时更新和保证事务(集群模式)的同步。
发明内容
本申请要解决的技术问题是提供一种缓存控制方法和系统,实现缓存数据的及时更新和事务同步。
为了解决上述问题,本申请提供了一种缓存控制方法,包括:
将包含多个服务器的集群形成层级网络结构;
其中,所述层级网络结构的每一层由多个节点以设定的第一结构的形式连接而成;每一包含多个节点的第一结构构成上一层网络结构中的一个节点;所述层级网络结构的最底层包括一个或多个第一结构,所述集群中的每个服务器作为所述层级网络结构的最底层的第一结构中的一个节点;
所述第一结构由每n个节点按预定规则形成,所述预定规则包括:所述n个节点中的每个节点和该n个节点中的k个节点相连,0<k<n,n>1;
判断缓存数据发生更新时,发送更新通知至所述层级网络结构的顶层的第一结构,由所述顶层的第一结构逐层转发至所述最底层的第一结构,直到所述最底层的第一结构的每个节点获取所述更新通知,即所述集群中的各服务器获取所述更新通知,以使所述集群中的各服务器更新缓存数据。
上述方法还可具有以下特点,所述发送更新通知至所述层级网络结构的顶层的第一结构,由所述顶层的第一结构逐层转发至所述最底层的第一结构,直到所述最底层的第一结构的每个节点获取所述更新通知包括:
每个所述第一结构中设定一主节点;
将所述更新通知发送至所述顶层的第一结构的主节点;
每个节点接收到所述更新通知后,进行如下转发处理:
将所述更新通知发送给处于同一第一结构的相邻节点;以及,如果所述节点非最底层节点,将所述更新通知发送给该层级网络结构中对应的下一层第一结构中的主节点。
上述方法还可具有以下特点,所述方法还包括:每个节点接收到所述更新通知后,进行所述转发处理前,判断是否已处理所述更新通知,如果已处理,则丢弃该更新通知,如果没有,才进行所述转发处理。
上述方法还可具有以下特点,所述方法还包括:所述服务器获取所述更新通知并接收新的缓存数据后,更新原缓存数据。
上述方法还可具有以下特点,所述n为10,所述k为3,所述第一结构为Petersen图。
上述方法还可具有以下特点,所述方法还包括:
将应用的缓存数据存储到分布式缓存中,以及,将使用频率和/或大小满足预定条件的缓存数据存储到所述集群中的服务器的本地缓存中;
接收到一个或多个应用访问同一缓存数据的访问请求后,如果所述分布式缓存中不存在所述一个或多个应用请求访问的缓存数据,则向数据源获取所述一个或多个应用请求访问的缓存数据后,将所述一个或多个应用请求访问的缓存数据发送给所述一个或多个应用,并将所述一个或多个应用请求访问的缓存数据更新到所述分布式缓存中。
上述方法还可具有以下特点,所述预定条件包括:
使用频率大于第一阈值且占用的缓存空间小于第二阈值;
和/或,使用频率大于第四阈值且占用的缓存空间大于第三阈值。
上述方法还可具有以下特点,所述方法还包括:
接收到应用的缓存数据访问请求后,如果所述应用请求访问的缓存数据位于发起所述缓存数据访问请求的服务器的本地缓存或者位于所述分布式缓存中,则从所述本地缓存或所述分布式缓存中获取所述应用请求访问的缓存数据并发送给所述应用。
上述方法还可具有以下特点,所述从所述本地缓存或所述分布式缓存中获取所述应用请求访问的缓存数据并发送给所述应用包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310172568.7/2.html,转载请声明来源钻瓜专利网。