[发明专利]一种异构数据源的多级分布式高速缓存有效
申请号: | 201210338272.3 | 申请日: | 2012-09-13 |
公开(公告)号: | CN102880557A | 公开(公告)日: | 2013-01-16 |
发明(设计)人: | 李创 | 申请(专利权)人: | 浙江金大科技有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F17/30 |
代理公司: | 杭州天欣专利事务所 33209 | 代理人: | 陈红 |
地址: | 310006 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据源 多级 分布式 高速缓存 | ||
技术领域
本发明涉及涉及一种异构数据源的多级分布式高速缓存,属于计算机缓存技术领域。
背景技术
网络拥塞与服务器超载是企业应用系统的普遍问题,此类问题加剧了服务提供方的资源消耗并严重影响着用户的使用体验。为企业系统增加缓存机制是解决这一问题的重要方法之一。系统缓存是位于应用程序与物理数据源之间,用于暂存数据的内存空间,其目的是为了减少直接对数据源进行访问的次数,从而节约系统资源,提高系统效率。
当前,缓存对于大型的互联网企业,每时每刻都有无数的用户在使用它们提供的互联网服务,这些服务带来的是大量的数据吞吐量,在同一时间,并发的会有成千上万的连接对数据库进行操作。在这种情况下,单台服务器或者几台服务器远远不能满足这些数据的处理需求,单靠提升服务器性也已经改变不了该情况,所以唯一可以采用的办法就是扩展服务器的规模。服务器规模扩展通常有两种方法:一种是仍然采用关系型数据库,然后通过对数据库的垂直和水平切割将整个数据库部署到一个集群上,这种方法的优点在于可以采用基于关系型数据库(RDBMS)的技术,但缺点在于它是针对特定应用,实施非常困难;另外一种方法就是Google和Amazon所采用的方法,抛弃关系型数据库,采用Key-Value形式的存储,这样可以极大地增强系统的可扩展性。事实上,基于Key-Value的分布式缓存就是由于Google的BigTable,Amazon的Dynamo以及Facebook的Cassandra等相关论文的发表而慢慢进入人们的视野,这些互联网巨头在分布式缓存上的成功实践也使之成为了云计算的核心技术。
本发明是一个高性能的分布式缓存方法,可以减轻数据源的负载,通过缓存数据和文件对象来减少读取数据源的次数,分层缓存能够提高缓存响应速度,并节约系统的资源。
专利公开号102216899,公开了一种管理高速缓存数据和元数据,它提供了用于管理将存储介质上的地址映射到高速缓存设备上的对应地址的高速缓存元数据的技术。高速缓存元数据可以存储在分层数据结构中。只有分层结构的各层的子集可被加载到存储器,从而减少高速缓存元数据的存储器“足迹”并在启动期间加速它的还原。启动还可以通过使用高速缓存元数据来执行与重新引导相关联的操作来进一步加速。在使用高速缓存元数据来标识该数据被存储在高速缓存中的地址以处理对从存储中读取数据的请求时,所标识的地址可被存储在存储器中。该方法一定程度上能解决上述问题,但设计比较复杂,成本较高,不利于推广。
发明内容
本发明所要解决的技术问题是克服现有技术中所存在的上述不足,而提供一种异构数据源的多级分布式高速缓存,异构数据源的多级分布式高速缓存是一个高性能的分布式数据或文件对象缓存系统,用以减轻数据源负载,通过缓存数据和文件对象来减少读取数据源的次数,并解决面对大规模的数据缓存的一些问题。
本发明解决上述技术问题所采用的技术方案是:一种异构数据源的多级分布式高速缓存,其特征在于:所述的异构数据源即缓存对象,缓存对象以键值对的形式存在,键值对包括两个数据项,键名和键值,键名是缓存对象的标号,为缓存项唯一标识,键值是缓存对象的数据,为缓存项内容;所述的缓存对象包括实体对象和非实体对象两类。
所述的缓存按照存储位置分为线程缓存、虚拟机缓存和群集缓存三个层次,每个层次缓存设置有开或关两个状态;高速缓存的查找流程如下:
① 系统在进行数据请求时,生成Cachekey,就是为缓存的对象分配一个计算机能够识别的值,使得计算机能够更好地处理缓存对象;
② 对于进行请求的数据,首先到线程缓存中进行查找,如果找到数据,则返回数据,结束流程;如果无法找到数据,再到虚拟机缓存中进行查找;
③ 虚拟机缓存中查找线程缓存中未能找到的数据,如果找到数据,则将数据返回,同时更新线程缓存,以便下一次该数据在线程缓存中能够找到;如果无法找到数据,再到群集缓存中进行查找;
④ 群集缓存中查找虚拟机缓存中未能找到的数据,如果找到数据,则将数据返回,同时更新虚拟机缓存,以便下一次该数据在虚拟机缓存中能够找到;如果依旧无法找到数据,则取出数据,同时更新群集缓存。
本发明所述的线程缓存是指存储用户与系统交互过程中对应线程的数据,当用户对系统的每一次访问操作,在服务器端对应一个线程进行处理。在用户对系统进行访问的过程中,所使用的数据往往具备高度的重复性。线程缓存存储某个用户再次与系统交互过程中对应线程所使用的数据,将直接提高用户的响应速度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江金大科技有限公司,未经浙江金大科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210338272.3/2.html,转载请声明来源钻瓜专利网。