分布式缓存阵列及其数据更新方法技术

技术编号:6952896 阅读:234 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种分布式缓存阵列及其数据更新方法,所述数据更新方法包括:所述缓存阵列从外部接收数据更新请求,选取负载轻的存储实例作为代理实例,执行代理更新操作;所述代理更新操作包括:代理实例向其他存储实例发送待存储数据进行存储。本发明专利技术能够提高数据更新效率,缩短数据更新的时间,降低服务器负载。

【技术实现步骤摘要】

本专利技术涉及数据处理技术,特别涉及一种。
技术介绍
随着科技的进步,用于描述信息的数据量也在不断增加,而且数据涉及的范围越来越广泛,数据之间的关系也变得更为复杂。为了提高数据处理的工作效率,对数据处理技术也提出了更高的要求。目前主要使用的数据处理技术,首先是将数据存入缓存阵列,然后对缓存阵列中的数据进行操作。缓存阵列也可以说是数据的集合。随着数据量的增加,单一服务器已经无法满足高并发缓存阵列的数据处理业务请求,因而出现了以异地存储为基础的分布式缓存阵列。现有的分布式缓存阵列的架构如图1所示,包括通过支持广播的高速互连网络连接而形成集群的存储实例。当外部访问缓存阵列,进行相关数据操作时,例如从缓存阵列查询数据,或者对缓存阵列内的数据进行更新,都以分布式处理的方式分别在多个实例中进行。现有的分布式缓存阵列在进行数据处理时存在如下问题,应用服务器的负载能力有限,在面对大数据量密集型的数据更新请求时,响应缓慢并且容易出现多重对数据的锁操作,这些锁会造成后续的请求堆积,而服务器本身的处理能力此时又得不到充分利用。
技术实现思路
本专利技术解决的问题是提供一种,提高数据更新效率,缩短数据更新的时间,降低服务器负载。本专利技术提供的分布式缓存阵列,包括通过支持广播方式的高速互连网络相互连接的若干存储实例;所述存储实例包括一台目录服务器、一个主存储单元以及与其关联的若干备份存储单元;所述目录服务器通过高速互连网侦听各存储实例的负载情况,并响应外部应用反馈低负载的存储实例列表以及向其他存储实例发送存储数据以及数据更新请求; 所述存储实例还包括更新引擎,用于接收所述数据更新请求,并对本存储实例的主存储单元更新存储数据。可选的,所述存储实例的目录服务器在主存储单元产生故障时,从备份存储单元选取新的主存储单元。本专利技术还提供了采用上述分布式缓存阵列的数据更新方法,包括所述缓存阵列从外部接收数据更新请求,选取负载轻的存储实例作为代理实例,执行代理更新操作;所述代理更新操作包括代理实例向其他存储实例发送待存储数据进行存储。可选的,所述缓存阵列从外部接收数据更新请求后,通过缓存阵列内的应用服务器向各目录服务器转发,所述外部应用服务从最先响应的目录服务器获取一组存储实例列表;所述列表是该目录服务器根据当前侦听统计结果,依据负载情况生成的负载相对较轻的存储实例列表;所述外部应用服务从列表中随机选择一个存储实例作为代理实例。可选的,所述代理实例向其他存储实例发送存储数据包括代理实例的目录服务3器将数据更新请求内所需存储的数据的查询定位信息向集群内的各存储实例广播;再与响应该数据查询定位信息的存储实例进一步通讯,拆分待存储数据并将其与数据更新请求发送给上述响应的存储实例。可选的,所述存储实例存储数据包括各存储实例的更新引擎接收到来自代理实例的数据更新请求以及经过拆分的存储数据后,更新本存储实例内的主存储单元。可选的,所述代理实例的目录服务器监控数据更新过程,当所有待存储数据均存储进各存储实例的主存储单元中时,通知各存储实例进行备份操作,所述备份操作包括各存储实例的主存储单元将当前存储数据通过提交事务日志的方式同步至与其关联的备份存储单元中。可选的,所述存储实例的主存储单元在发生故障无法进行数据更新时,目录服务器向与其关联的各备份存储单元广播产生新主存储单元的通告信息,并选取响应最快的备份存储单元作为新的主存储单元。与现有技术相比,本专利技术具有以下优点当向缓存阵列中存储数据时,采取分布式写入随机选择存储实例的模式,使所存储的数据是相对均衡地分布在集群内多个存储实例之中。也使更新数据的操作能较为均衡地分布在集群内多个存储实例之上。平衡负载从而提高更新效率以及速度。附图说明图1是现有的分布式缓存阵列的架构示意图;图2是本专利技术所述分布式缓存阵列的硬件实现示意图;图3是本专利技术所述分布式缓存阵列的架构示意图;图4是本专利技术实施例的数据更新方法的步骤流程图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更为明显易懂,下面结合本专利技术的分布式缓存阵列及数据查询方法的具体实施方式做详细的说明。现有集中式缓存阵列的容量及存储能力受硬件容量及可扩展性的约束,不能按需进行容量的扩展。采用多个缓存阵列进行分布式的分区存储(分存储实例存储),需要依赖特定的散列函数对数据分区定位后再进行存储。在实际应用中容易造成不同存储实例的负载不均衡,并可以因为一个存储实例存储溢出而导致整个集群存储失败。并且依赖于特定散列函数进行数据分区的情况下,如果要做数据更新的条件不是散列函数用的键值,则应用需要自己逐个访问各存储实例去定位待更新的数据,更新效率较低下。具体的,本专利技术所述的数据更新方法包括从外部接收数据更新请求,选取负载轻的存储实例作为代理实例,执行代理更新操作;所述代理更新操作包括代理实例向其他存储实例发送待存储数据进行存储。通过上述代理更新操作,数据能够较为均勻地分散存储在各存储实例中,而不是依赖于某个预先确定的键值以及相应的散列函数来决定数据如何分布于各个存储实例中。 这可以避免依赖于散列函数所带来的双重问题实际应用下的数据在键值上不会均勻分布,有可能发生不可预计的在某些键值区段数据密集的状况,这将导致数据在分区存储上的不均衡,进而导致系统存储及处理能力不均;此外由于数据定位于哪个存储分区是由散列函数决定的,即使发现散列函数的问题,事后也不能进行调整或修改优化,否则会导致已经存储的数据无法定位的严重问题。由于与现有的数据查询方法相比,本专利技术所述数据更新方法执行数据更新的主体已经变成各存储实例自身,因此缓存阵列的架构也相应发生了变化。图2为本专利技术所述分布式缓存阵列的硬件实现图。如图2所示,在应用本专利技术数据查询方法的分布式缓存阵列中,包括通过支持广播方式的高速互连网络(例如采用 Infiniband等高速网络连接技术的互连网络)相互连接的存储集群,包括若干主存储单元以及备份存储单元,还包括若干目录服务器。所述目录服务器提供针对于主存储单元的负载统计服务以及外部应用查询存储实例的列表服务。每个主存储单元具有若干备份存储单元与其相关联,用于保证数据可靠性。主存储单元是相互区别的,地址唯一且不存在重复的数据内容。所述目录服务器可以是独立存在的硬件实体,也可以是集成于主存储单元中的数据计算处理部件。整个存储集群则通过应用服务器向外部提供高可用和高性能的分布式缓存数据服务。图3为上述分布式缓存阵列的逻辑架构图,将存储集群内的每一个主存储单元、 与其关联的备份存储单元以及相对应的目录服务器,定义为一个逻辑存储实例。各存储实例之间可以通过支持广播的高速互连网络连接,使得各存储实例均能够将数据分散随机地广播至其他存储实例,在其他存储实例中并行执行数据更新操作,即在相应的主存储单元中进行数据的更新存储。从而为本专利技术所述的代理更新模式提供了实现条件。下面结合上述分布式缓存阵列的架构图,对本专利技术数据更新方法的一个具体实施例作详细介绍,图4是本专利技术数据更新方法的具体步骤流程图。结合图3以及图4所示,缓存阵列的存储实例集群包括若干个存储实例。各存储实例分别包括主存储单元、备份存储单元以及内置的更新引擎,还包括与之相对应的目录服务器。需要注意的是,目录服务器仅仅在逻辑上从属于某个存储实例;但为了便于说明本文档来自技高网...

【技术保护点】
1.一种分布式缓存阵列,其特征在于,包括通过支持广播方式的高速互连网络相互连接的若干存储实例;所述存储实例包括一台目录服务器、一个主存储单元以及与其关联的若干备份存储单元;所述目录服务器通过高速互连网侦听各存储实例的负载情况,并响应外部应用反馈低负载的存储实例列表以及向其他存储实例发送存储数据以及数据更新请求;所述存储实例还包括更新引擎,用于接收所述数据更新请求,并对本存储实例的主存储单元更新存储数据。

【技术特征摘要】
1.一种分布式缓存阵列,其特征在于,包括通过支持广播方式的高速互连网络相互连接的若干存储实例;所述存储实例包括一台目录服务器、一个主存储单元以及与其关联的若干备份存储单元;所述目录服务器通过高速互连网侦听各存储实例的负载情况,并响应外部应用反馈低负载的存储实例列表以及向其他存储实例发送存储数据以及数据更新请求;所述存储实例还包括更新引擎,用于接收所述数据更新请求,并对本存储实例的主存储单元更新存储数据。2.如权利要求1所述的分布式缓存阵列,其特征在于,所述存储实例的目录服务器在主存储单元产生故障时,从备份存储单元选取新的主存储单元。3.一种采用权利要求1所述的分布式缓存阵列的数据更新方法,其特征在于,包括所述缓存阵列从外部接收数据更新请求,选取负载轻的存储实例作为代理实例,执行代理更新操作;所述代理更新操作包括代理实例向其他存储实例发送待存储数据进行存储。4.如权利要求3所述的数据更新方法,其特征在于,所述缓存阵列从外部接收数据更新请求后,向各目录服务器转发,所述外部应用服务从最先响应的目录服务器获取一组存储实例列表;所述列表是该目录服务器根据当前侦听统计结果,依据负载情况生成的负载相对较轻的存储实例列表...

【专利技术属性】
技术研发人员:虞钢
申请(专利权)人:上海西本网络科技有限公司
类型:发明
国别省市:31

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

1