数据存取方法、调度方法、设备及系统技术方案

技术编号:10176645 阅读:145 留言:0更新日期:2014-07-02 16:35
本发明专利技术公开一种数据存取方法、调度方法、设备及系统,该数据调度方法包括:分布式缓存系统的服务器获取各缓存节点的内存使用信息;所述服务器根据各缓存节点的内存使用信息,确定需要进行数据迁移的源缓存节点,并在确定出需要迁移的源缓存节点后,确定出所述源缓存节点上需要迁移的哈希桶,以及能够容纳该哈希桶中的数据的目标缓存节点;所述服务器向所述源缓存节点发送数据调度指令,以指示所述源缓存节点将需要迁移的哈希桶中的数据迁移到所述目标缓存节点;所述服务器向被迁移的哈希桶所属的客户端设备发送映射关系更新指令,以指示该客户端根据本次数据迁移操作更新哈希桶与缓存节点的映射关系。

【技术实现步骤摘要】
数据存取方法、调度方法、设备及系统
本专利技术涉及通信网络
,尤其涉及一种数据存取方法、调度方法、设备及系统。
技术介绍
在Web2.0时代,互联网上的大部分应用都是将数据保存在关系型数据库中,客户端从数据库中读取数据。但是随着数据量的增加和数据访问量的增大,就会出现数据库负载加重、性能下降、响应缓慢、网站显示延迟等一系列问题,在这种背景下,基于内存的缓存服务器应运而生。通常,现有的支持多客户端的数据存取方案通过一致性哈希算法实现。一致性哈希算法通过将各缓存节点和数据主键的哈希值投射到一个环形空间上,来实现数据的分布式存储。在判断某个数据落在哪个缓存节点时,一致性哈希算法以该数据在环上的位置为起点,按照顺时针方向遍历环形域值空间,遇到的第一个缓存节点即为该数据所属的缓存节点。为了避免数据在缓存节点上分布不均匀,一致性哈希算法通过将一个实体缓存节点复制为几个虚拟缓存节点来稀释环形域值空间上的数据。虚拟缓存节点只负责对数据的划分,分布到虚拟缓存节点上的数据依然通过实体缓存节点来存储。但是,一致性哈希算法的虚拟缓存节点数据存取方案存在以下缺点:1、在引入了虚拟缓存节点后,存取一条数据所属的缓存节点至少需要三个步骤:a.计算该数据在环形域值空间上的位置;b.根据计算所得位置找到该数据所属的虚拟缓存节点;c.根据虚拟缓存节点找到对应的实体缓存节点。由此可以看出,虚拟缓存节点的引入,使得数据存取过程变得更为复杂,降低了数据存取性能。2、在多客户端环境下,不同客户端的单条数据大小可能不同,这就导致即使每个缓存节点上缓存的数据条数相同,但是总数据大小却不同,即,有的缓存节点占用内存较多,有的缓存节点占用内存较少,数据分布不均匀的问题不但没有避免,反而还有可能放大,进而使得缓存服务器节点的内存利用率大打折扣。因此,亟需一种数据存取方案以及数据调度方案出现,用以解决上述技术问题。
技术实现思路
本专利技术实施例提供了一种数据存取方法及设备,用以降低数据访问的复杂性,提升数据存取性能。为了实现上述目的,本专利技术实施例采用以下技术手段:本专利技术实施例提供一种数据存取方法,应用于分布式缓存系统,所述方法包括:分布式缓存系统的客户端设备根据请求存取的数据主键,确定所述数据主键对应的哈希桶,并根据哈希桶与缓存节点的映射关系,确定所述哈希桶对应的缓存节点;其中,一个哈希桶唯一对应一个缓存节点;所述客户端设备向所述哈希桶对应的缓存节点发起数据存取请求,以请求所述缓存节点根据所述数据存取请求进行存取处理。本专利技术实施例还提供一种客户端设备,应用于分布式缓存系统,包括:确定模块,用于根据请求存取的数据主键,确定所述数据主键对应的哈希桶,并根据哈希桶与缓存节点的映射关系,确定所述哈希桶对应的缓存节点;其中,一个哈希桶唯一对应一个缓存节点;存取请求模块,用于向所述哈希桶对应的缓存节点发起数据存取请求,以请求所述缓存节点根据所述数据存取请求进行存取处理。与现有技术相比,本专利技术的上述实施例具有以下有益技术效果:本专利技术实施例提供的数据存取方案,客户端设备根据请求存取的数据主键确定对应的哈希桶,并根据哈希桶与缓存节点的映射关系确定该哈希桶对应的缓存节点,通过上述两层映射关系即可确定数据存储位置,简化了数据存取过程,提高了数据处理速度,并提升数据存取性能。本专利技术实施例还提供了一种数据调度方法、设备及系统,用以实现数据均匀分布,提高缓存节点的内存利用率。为了实现上述目的,本专利技术实施例采用以下技术手段:本专利技术实施例提供一种基于前述数据存取方法实现的数据调度方法,所述方法包括:分布式缓存系统的服务器获取各缓存节点的内存使用信息;所述服务器根据各缓存节点的内存使用信息,确定需要进行数据迁移的源缓存节点,并在确定出需要迁移的源缓存节点后,确定出所述源缓存节点上需要迁移的哈希桶,以及能够容纳该哈希桶中的数据的目标缓存节点;所述服务器向所述源缓存节点发送数据调度指令,以指示所述源缓存节点将需要迁移的哈希桶中的数据迁移到所述目标缓存节点;所述服务器向被迁移的哈希桶所属的客户端设备发送映射关系更新指令,以指示客户端根据本次数据迁移操作更新哈希桶与缓存节点的映射关系。本专利技术实施例还提供一种服务器,应用于分布式缓存系统,包括:获取模块,用于获取各缓存节点的内存使用信息;决策模块,用于根据所述获取模块获取的各缓存节点的内存使用信息,确定需要进行数据迁移的源缓存节点,并在确定出需要迁移的源缓存节点后,确定出所述源缓存节点上需要迁移的哈希桶,以及能够容纳该哈希桶中的数据的目标缓存节点;调度模块,用于向所述源缓存节点发送数据调度指令,以指示所述源缓存节点将需要迁移的哈希桶中的数据迁移到所述目标缓存节点;更新指示模块,用于向被迁移的哈希桶所属的客户端设备发送映射关系更新指令,以指示客户端根据本次数据迁移操作更新哈希桶与缓存节点的映射关系。本专利技术实施例还提供一种分布式缓存系统,所述系统包括:前述的客户端设备、前述的服务器以及至少2个缓存节点,其中,缓存节点,用于接收客户端设备发起的数据存取请求,并对所述数据存取请求进行存取处理;以及,接收服务器发送的数据调度指令,并根据所述数据调度指令,将需要迁移的哈希桶中的数据迁移到目标缓存节点。与现有技术相比,本专利技术的上述实施例具有以下有益技术效果:本专利技术实施例提供的数据调度方案,由服务器确定需要进行数据调度的源缓存节点,并控制源缓存节点以哈希桶为单位,将数据迁移至其他缓存节点,从而实现数据在缓存节点上均匀分布,提高了内存利用率。附图说明图1为本专利技术实施例的系统架构示意图;图2为本专利技术实施例提供的数据存取流程示意图;图3为本专利技术实施例提供的数据调度流程示意图;图4a-图4d为本专利技术实施例二叉树数据调度算法示意图;图5为本专利技术实施例提供的客户端设备的结构示意图;图6为本专利技术实施例提供的服务器的结构示意图。具体实施方式针对现有技术存在的上述问题,本专利技术实施例提供了一种数据存取方案以及数据调度方案。下面结合附图对本专利技术实施例进行详细描述。图1示出了本专利技术实施例提供的分布式缓存系统架构,该缓存系统支持多客户端的数据访问请求。该系统架构中可包括:客户端设备11(可以是多个,图中仅示出了一个客户端设备)、服务器12和至少2个缓存节点13。客户端设备11用于进行数据存取访问;服务器12用于监控和调度各缓存节点13的数据分布;缓存节点13用于在内存缓存数据,并响应客户端设备11的数据存取请求。本专利技术实施例的分布式缓存系统将数据存储空间划分为多个哈希桶,数据以哈希桶为存储单元存储于各缓存节点上,哈希桶的数目可以依据分布式缓存系统性能以及数据业务需求设定。哈希桶只是一个逻辑上的数据存储单元,真正存储数据的是缓存节点。一个哈希桶中的数据不能跨节点存储,即,一个哈希桶只能唯一对应一个缓存节点,而一个缓存节点则可以对应多个哈希桶。当客户端设备接入到分布式缓存系统时,向分布式缓存系统请求分配哈希桶,即,客户端设备向服务器发起内存空间分配请求。服务器根据该请求中携带的本客户端需要占用的哈希捅数目,为该客户端分配相应数量的哈希桶,并建立哈希桶与缓存节点之间的对应关系,以生成映射表,并将映射表发送给客户端设备。优选的,服务器可以在本地存储映射表。映射表结构如表1所示:表1表1中,本文档来自技高网
...
数据存取方法、调度方法、设备及系统

【技术保护点】
一种数据存取方法,应用于分布式缓存系统,其特征在于,包括:分布式缓存系统的客户端设备根据请求存取的数据主键,确定所述数据主键对应的哈希桶,并根据哈希桶与缓存节点的映射关系,确定所述哈希桶对应的缓存节点;其中,一个哈希桶唯一对应一个缓存节点;所述客户端设备向所述哈希桶对应的缓存节点发起数据存取请求,以请求所述缓存节点根据所述数据存取请求对进行存取处理。

【技术特征摘要】
1.一种数据调度方法,其特征在于,所述方法包括:分布式缓存系统的服务器获取各缓存节点的内存使用信息;所述服务器根据各缓存节点的内存使用信息,确定需要进行数据迁移的源缓存节点,并在确定出需要迁移的源缓存节点后,确定出所述源缓存节点上需要迁移的哈希桶,以及能够容纳该哈希桶中的数据的目标缓存节点;所述服务器向所述源缓存节点发送数据调度指令,以指示所述源缓存节点将需要迁移的哈希桶中的数据迁移到所述目标缓存节点;所述服务器向被迁移的哈希桶所属的客户端设备发送映射关系更新指令,以指示客户端根据本次数据迁移操作更新哈希桶与缓存节点的映射关系;其中,各缓存节点的数据读取方法包括:分布式缓存系统的客户端设备根据请求存取的数据主键,确定所述数据主键对应的哈希桶,并根据哈希桶与缓存节点的映射关系,确定所述哈希桶对应的缓存节点;其中,一个哈希桶唯一对应一个缓存节点;所述客户端设备向所述哈希桶对应的缓存节点发起数据存取请求,以请求所述缓存节点根据所述数据存取请求对进行存取处理。2.如权利要求1所述的方法,其特征在于,所述服务器根据各缓存节点的内存使用信息,确定需要进行数据迁移的源缓存节点,具体包括:所述服务器将各缓存节点的内存使用信息与预设阈值进行比较,若有缓存节点的内存空闲空间占有率低于所述预设阈值,则确定该缓存节点需要进行数据迁移。3.如权利要求1所述的方法,其特征在于,所述服务器获取各缓存节点的内存使用信息之后,还包括:根据各缓存节点的内存使用信息创建二叉树模型;其中,所述二叉树模型中,叶子节点为各缓存节点,每两个孩子节点共享一个双亲节点,叶子节点的权值为缓存节点的内存空闲空间占有率,双亲节点的权值等于其两个孩子节点中较大的权值;所述服务器确定能够容纳该哈希桶中的数据的目标缓存节点,具体包括:步骤a、将二叉树模型的根节点作为起始节点;步骤b、判断起始节点的孩子节点中是否存在内存空闲空间占有率大于需要迁移的哈希桶的数据容量,且二者之差大于预设阈值的节点,若存在,则执行步骤c,否则,结束本流程;步骤c、若起始节点的两个孩子节点的内存空闲空间占有率均大于需要迁移的哈希桶的数据容量,且二者之差大于所述预设阈值,则选择其中权值较大的节点;若起始节点的两个孩子节点中仅有一个孩子节点的内存空闲空间占有率大于需要迁移的哈希桶的数据容量,且二者之差大于所述预设阈值,则选择该孩子节点;步骤d、判断选择出的孩子节点是否为二叉树的叶子节点,若是,则将选择出的孩子节点确定为能够容纳该哈希桶中的数据的目标缓存节点;否则,执行步骤e;步骤e、将选择出的孩子节点作为起始节点,并执行步骤b。4.如权利要求1所述的方法,其特征在于,确定所述源缓存节点上需要迁移的哈希桶的过程,具体包括:随机选择所述源缓存节点中的至少一个哈希桶;或者按照内存空闲空间占有率从大到小的顺序,选择所述源缓存节点中的至少一个哈希桶;或者按照内存空闲空间占有率从小到大的顺序,选择所述源缓存节点中的至少一个哈希桶。5.一种服务器,应用于分布式缓存系统,其特征在于,所述服务器包括:获取模块,用于获取各缓存节点的内存使用信息;决策模块,用于根据所述获取模块获取的各缓存节点的内存使用信息,确定需要进行数据迁移的源缓存节点,并在确定出需要迁移的源缓存节点后,确定出所...

【专利技术属性】
技术研发人员:梁智超钱岭周大孙少陵
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京;11

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

1