【技术实现步骤摘要】
均衡分布式内存数据库负载的方法和装置
本申请涉及大数据
,特别涉及一种均衡分布式内存数据库负载的方法和装置。
技术介绍
随着计算机技术和网络技术的发展,在大数据领域,分布式系统变的越来越广泛,分布式内存数据库作为分布式系统中主要数据库,主要是将数据放在内存中以提供操作的数据库,相对于磁盘存储,由于分布式内存数据库的读写速度远高于磁盘,所以基于分布式内存数据库的存储有更高的应用性。在分布式内存数据库中包括多个节点,每个节点均可对分片(分片是按照固定的行数的数据组成的一个逻辑单元)进行处理,但是在分布式内存数据库运行过程中,由于某些原因(如分布式内存数据库扩容,新增的节点没有分片、某个节点由于网络延迟,错过了新数据的分配、某个节点下线再重启恢复,之前存储的分片中剔除了部分过期数据,也错过了下线期间的新数据分配等)会使各个节点的CPU占用率不相同(即负载不均衡),其中一些节点的CPU占用率高,而另一些节点的CPU占用率低,CPU占用率高的节点处理分片的能力较低,等待时长比较长,所以会导致分片处理效率较低。r>
技术实现思路
...
【技术保护点】
1.一种均衡分布式内存数据库负载的方法,其特征在于,所述方法包括:/n获取目标分布式内存数据库中每个节点当前分片的数目和当前分片的标识,并获取第一时长和第二时长,其中,所述第一时长为单个分片在本地节点上被完成处理的平均时长,所述第二时长为单个分片通过跨网络方式在非本地节点上被完成处理的平均时长;/n根据每个节点当前分片的数目、每个节点当前分片的标识、所述第一时长和所述第二时长,确定在负载均衡时,每个节点处理的分片的指示信息,其中,所述指示信息用于指示来自于各节点的分片;/n对于每个节点,将所述节点的分片的指示信息发送至所述节点,以使所述节点根据所述节点的分片的指示信息,获取分片进行处理。/n
【技术特征摘要】
1.一种均衡分布式内存数据库负载的方法,其特征在于,所述方法包括:
获取目标分布式内存数据库中每个节点当前分片的数目和当前分片的标识,并获取第一时长和第二时长,其中,所述第一时长为单个分片在本地节点上被完成处理的平均时长,所述第二时长为单个分片通过跨网络方式在非本地节点上被完成处理的平均时长;
根据每个节点当前分片的数目、每个节点当前分片的标识、所述第一时长和所述第二时长,确定在负载均衡时,每个节点处理的分片的指示信息,其中,所述指示信息用于指示来自于各节点的分片;
对于每个节点,将所述节点的分片的指示信息发送至所述节点,以使所述节点根据所述节点的分片的指示信息,获取分片进行处理。
2.根据权利要求1所述的方法,其特征在于,所述获取第一时长和第二时长,包括:
统计第一预设数目个分片在本地节点上分别被完成处理的时长,并且统计第二预设数目个分片在跨网络非本地节点上分别被完成处理的时长;
确定统计出的所述第一预设数目个分片在本地节点上分别被完成处理的时长的平均值为第一时长,并确定统计出的所述第二预设数目个分片在跨网络非本地节点上分别被完成处理的时长的平均值为第二时长。
3.根据权利要求1所述的方法,其特征在于,所述根据每个节点当前分片的数目、每个节点当前分片的标识、所述第一时长和所述第二时长,确定在负载均衡时,每个节点处理的分片的指示信息,包括:
根据每个节点当前分片的数目、所述第一时长和所述第二时长,确定在负载均衡时,每个节点处理的分片中来自于各节点的分片的数目;
根据每个节点处理的分片中来自于各节点的分片的数目和每个节点当前分片的标识,确定每个节点处理的分片的指示信息。
4.根据权利要求1至3任一所述的方法,其特征在于,所述指示信息包括:
来自于各个节点的分片中的起始分片标识和结束分片标识;或者,
来自于各个节点的分片的数目以及起始分片标识;或者,
来自于各个节点的分片的数目以及结束分片标识。
5.根据权利要求3所述的方法,其特征在于,所述根据每个节点当前分片的数目、所述第一时长和所述第二时长,确定在负载均衡时,每个节点处理的分片中来自于各节点的分片的数目,包括:
以TotalCost取值最小为原则,确定在负载均衡时,每个节点处理的分片中来自于各节点的分片的数目,其中,所述目标分布式内存数据库中所有节点当前分片的数目之和等于在负载均衡时所述所有节点上处理的分片的数目之和,TotalCost为所述目标分布式内存数据库中各节点处理分片的总时长的方差之和,Costk为节点k处理分片的总时长,Costk包括处理所述节点k处理所述节点k上的分片的时长Xkk*t与所述节点k处理其它节点的分片的时长t为第一时长,ct为第二时长,n为所述目标分布式内存数据库中节点的数目,Xkk为所述节点k处理所述节点k上存储的分片的数目,Xik为所述节点k处理节点i上存储的分片的数目,所述节点k为所述目标分布式内存数据库中的任一节点,k大于或等于1。
6.根据权利要求5所述的方法,其特征在于,所述以TotalCost取值最小为原则,确定在负载均衡时,每个节点处理的分片中来自于各节点的分片的数目,包括:
将TotalCost转换为矩阵形式TotalCost=XTHX,其中,X=(X11,X12,...,X1n,...Xij,...,Xn1,Xn2,...,Xnn)T,Xij为第j个节点处理第i个节点上的分片的数目,i,j,n为正整数,H为对称矩阵,X中元素之和小于或等于所述目标分布式内存数据库中所有节点当前分片的数目之和;
以XTHX取最小值为原则,确定在负载均衡时,每个节点处理的分片中来自于各节点的分片的数目。
7.根据权利要求1所述的方法,其特征在于,所述获取目标分布式内存数据库中每个节点当前分片的数目,包括:
在接收到数据查询请求时,获取目标分布式内存数据库中每个节点当前分片的数目;
所述方法还包括:
接收所述目标分布式内存数据库中各节点处理分片的结果;
将各节点处理分片的结果进行汇总得到总结果;
反馈所述总结果。
8.一种均衡分布式内存数...
【专利技术属性】
技术研发人员:方超,
申请(专利权)人:杭州海康威视数字技术股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。