一种基于CACHE的数据处理系统及其方法技术方案

技术编号:3543523 阅读:187 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了一种基于CACHE的数据处理系统,至少具有:CACHE客户端;分布式CACHE服务器,用于接收客户端的数据请求并在CACHE数据存储装置中查询CACHE数据;CACHE数据存储装置;以及数据源,用于保存数据。本发明专利技术也揭示了一种数据处理方法,该方法包括:CACHE客户端接收数据请求并转发至分布式CACHE服务器;该分布式CACHE服务器查询数据,若CACHE命中,则将数据返回至所述CACHE客户端;若CACHE未命中,则CACHE客户端向数据源发送请求。采用本发明专利技术的系统及其方法,不仅配有CACHE数据存储装置以将海量的CACHE数据分布到多台CACHE数据中心,而且为CACHE列表类数据提供了优化的算法,大大提高了CACHE命中率。此外,该系统可以实时更新CACHE数据。

【技术实现步骤摘要】

本专利技术涉及数据存取技术,尤其涉及分布式环境下的数据缓存技术。
技术介绍
随着网络应用系统的功能日益强大,用户向系统发送数据请求的频率与幅度也越来越高,从而系统的数据规模量也迅速地呈现上升趋势。在这种情况下,传统的数据库的吞吐量毕竟有限,尤其在大规模的数据请求时,传统数据库的I/O吞吐水平已无法满足用户的快捷体验感,并且日益成为制约系统继续扩展的瓶颈。在互联网飞速发展的今天,尤其是门户网络,每天来自用户的数据请求量高达数亿条,并且在这些数据请求中有很多都是相同的。对于系统来说,频繁读取相同数据给不同的用户会造成系统性能的大幅度下降;对于用户来说,请求点击率高的数据会耗费大量的等待时间。为了解决这一技术问题,开发一种在分布式环境下高效、实时、高性能的数据缓存系统是必然趋势,也是势在必行的。以下对CACHE予以简要地介绍。CACHE是一种特殊的存储器,它由CACHE存储部件和CACHE控制部件组成。CACHE存储部件一般采用与CPU同类型的半导体存储器件,其存取速度也比内存快几倍甚至十几倍。而CACHE控制部件包括主存地址寄存器、CACHE地址寄存器、主存-CACHE地址变换部件及替换控制部件等。当CPU一条指令接着一条指令地运行程序时,其指令地址往往是连续的,也就是说,CPU在访问内存时,在较短的一段时间内往往集中于某个局部,这时候可能会碰到一些需要反复调用的子程序。为此,计算机在工作时将这些频繁调用的子程序存入比内存快得多的CACHE中,并由此而引申出CACHE“命中”和“未命中”。CPU在访问内存时,首先判断所要访问的内容是否在CACHE中,如果存在,就称为“命中”,在CACHE命中时CPU直接从CACHE中调用所需访问的数据内容;如果不存在,就称为“未命中”,CPU只好去内存中调用所需的子程序或指令。此外,CPU不但可以直接从CACHE中读出内容,也可以直接往其中写入内容,由于CACHE的-->存取速率相当快,使得CPU的利用率大大提高,进而使得整个系统的性能得以提升。图1示出了现有技术中分布式环境下基于CACHE的数据处理系统的一种实施例。参照图1,在该分布式环境下具有两台服务器:应用服务器1-100和应用服务器2-106,其中应用服务器1配置有CACHE服务包1-102,应用服务器2配置有CACHE服务包2-108,并且分别将CACHE数据存储在CACHE中心1-104和CACHE中心2-110内。本领域的技术人员应当理解,虽然该实施例中只有两台应用服务器,但是分布式环境下的服务器数目并不仅仅只限于两台的情况。为了提高CACHE数据的命中率与CACHE数据的一致性,需要一种数据同步装置将每台应用服务器中有变化的CACHE数据通知给所有其他的应用服务器,即,图1中的数据同步装置。这里需要说明的是,CACHE性能的关键指标就是CACHE的命中率,鉴于CACHE的容量远远小于内存,它只可能存放内存的一部分数据。CPU首先访问CACHE,再访问主存,如果数据在CACHE中即为CACHE命中;如果数据不在CACHE中为CACHE未命中,从而CACHE命中的数据占整个需要访问的数据的比例就是CACHE的命中率。换言之,CACHE中找到的所需访问的数据越多,CACHE的命中率越高;CACHE中没有找到而在内存中找到的所需访问的数据越多,CACHE的命中率就越低。对于图1所示的数据处理系统,在系统规模比较小、CACHE中存储的数据量不大的情形下,可以有效地工作。但是如果数据量很大,CACHE数据存储在本地服务器中会影响到本地服务器的正常工作,如果另外设置专门的服务器则影响工作效率,并且成本增加了。更需要考虑的是,如果系统规模变大,比如应用服务器超过五台,则系统耗费在数据同步上面的开销非常巨大,也使得系统的性能急剧下降。图2示出了现有技术中分布式环境下基于CACHE的数据处理系统的另一种实施例。参照图2,该数据处理系统包括应用服务器1-200和应用服务器2-204,每台应用服务器分别具有各自的客户端,即,应用服务器1具有客户端1-202,以及应用服务器2具有客户端2-206,并且客户端通过CACHE服务器208读取CACHE数据210,并且更新数据将CACHE数据210和数据源212作同一事务处理,以使得CACHE中的数据处于最新状态。相比于图1中所示的数据处理系统,图2设置了专用的CACHE服务器208,通过CACHE服务器208来统一调取CACHE数据。然而,本-->领域的技术人员不难看出,该数据处理系统对于CACHE数据的更新以及列表类数据的CACHE处理存在诸多缺陷。具体来说,将CACHE数据210与数据源212的数据统一更新,并将其放置于同一个事务中,对于高并发的系统非常容易导致CACHE数据210成为瓶颈。此外,该数据处理系统对于列表类数据的CACHE无能为力,例如一个二十条的数据列表作为一个CACHE对象,只要其中有一条记录作了变化,则包含该条记录的整个CACHE对象就将失效,也就是说,一条记录的数据发生变化将直接导致其他的十九条记录变为CACHE未命中。显然,这样的处理方案极大地影响了CACHE的命中率。
技术实现思路
针对现有技术中分布式环境下基于CACHE(高速缓冲存储器)的数据处理系统中存在的上述缺陷,本专利技术提供了一种改进的CACHE数据处理系统。该处理系统不仅提供了一个专门的CACHE数据存储中心以容纳海量的数据,而且还对数据源中的列表类数据的CACHE提供了专门的处理策略,从而极大地提高了CACHE的命中率并降低了CACHE失效的发生几率。按照本专利技术的一个方面,提供了一种基于CACHE的数据处理系统,该系统至少具有:CACHE客户端,用于接收应用服务器的数据请求,并将所述数据请求转发至分布式CACHE服务器;分布式CACHE服务器,用于接收来自CACHE客户端的所述数据请求,在CACHE数据存储装置中查询CACHE数据;CACHE数据存储装置,用于存储CACHE数据,当所述分布式CACHE服务器调取数据时,返回所需的CACHE数据;以及数据源,用于保存数据,并且,当所述分布式CACHE服务器调取数据时,返回所需的CACHE数据。其中,当CACHE列表类数据时,所述数据源获取访问数据的所有ID并发送至所述CACHE客户端。其中,所述CACHE客户端首先向所述分布式CACHE服务器发送数据请求,如果CACHE命中,则直接返回数据;如果CACHE未命中,则转向所述数据源发送数据请-->求。进一步,当CACHE命中时,所述分布式CACHE服务器将来自所述CACHE数据存储装置中的数据发送给所述CACHE客户端;当CACHE未命中时,所述数据源将数据读出至所述CACHE客户端的同时,将所述数据存储至所述CACHE数据存储装置。其中,当更新数据时,所述分布式CACHE服务器向所述CACHE数据存储装置发送指令,指示该数据失效。此外,所述CACHE数据存储装置中的数据失效时,更新后的数据只存储至所述数据源。按照本专利技术的另一个方面,提供了一种基于CACHE的数据处理方法,该方法包括:客户端接收来自应用服务器的数据请求,并转发至分布式CACHE服务器;分布式CACHE服务器在CACHE数据存本文档来自技高网
...

【技术保护点】
一种基于CACHE的数据处理系统,其特征在于,该系统至少具有: CACHE客户端,用于接收应用服务器的数据请求,并将所述数据请求转发至分布式CACHE服务器; 分布式CACHE服务器,用于接收来自CACHE客户端的所述数据请求, 在CACHE数据存储装置中查询CACHE数据; CACHE数据存储装置,用于存储CACHE数据,当所述分布式CACHE服务器调取数据时,返回所需的CACHE数据;以及 数据源,用于保存数据,并且当CACHE未命中时,接收所述CA CHE客户端发送的数据请求。

【技术特征摘要】
1.一种基于CACHE的数据处理系统,其特征在于,该系统至少具有:CACHE客户端,用于接收应用服务器的数据请求,并将所述数据请求转发至分布式CACHE服务器;分布式CACHE服务器,用于接收来自CACHE客户端的所述数据请求,在CACHE数据存储装置中查询CACHE数据;CACHE数据存储装置,用于存储CACHE数据,当所述分布式CACHE服务器调取数据时,返回所需的CACHE数据;以及数据源,用于保存数据,并且当CACHE未命中时,接收所述CACHE客户端发送的数据请求。2.如权利要求1所述的系统,其特征在于,当CACHE列表类数据时,所述数据源获取访问数据的所有ID并发送至所述CACHE客户端。3.如权利要求1所述的系统,其特征在于,所述CACHE客户端首先向所述分布式CACHE服务器发送数据请求,如果CACHE命中,则直接返回数据;如果CACHE未命中,则转向所述数据源发送数据请求。4.如权利要求3所述的系统,其特征在于,当CACHE命中时,所述分布式CACHE服务器将来自所述CACHE数据存储装置中的数据发送给所述CACHE客户端。5.如权利要求3所述的系统,其特征在于,当CACHE未命中时,所述数据源将数据读出至所述CACHE客户端的同时,将所述数据存储至所述CACHE数据存储装置。6.如权利要求1所述的系统,其特征在于,当更新数据时,所述分布式CACHE服务器向所述CACHE数据存储装置发送指令,指示该数...

【专利技术属性】
技术研发人员:张建锋
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:KY[开曼群岛]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1