分布式数据库负载调平的方法和装置制造方法及图纸

技术编号:15441824 阅读:118 留言:0更新日期:2017-05-26 06:51
本发明专利技术公开了一种分布式数据库负载调平的方法,包括:统计分布式数据库系统中所有服务器的负载量和每一个服务器中每一个数据片的负载占比;将负载量排序排序靠前的n个服务器作为高负载服务器,将负载量排序排序靠后的n个服务器作为低负载服务器;将高负载服务器中负载占比排序在前的数据片作为源数据片,将低负载服务器中负载占比排序在后的数据片作为目标数据片,将目标数据片与源数据片对调。本发明专利技术还公开了一种分布式数据库负载调平的装置。本发明专利技术降低了高负载服务器中的负载量,且避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况,有效降低整个分布式数据库系统的负荷。

Method and device for leveling load of distributed database

The invention discloses a distributed database load leveling method, including load statistics for all servers in a distributed database system and the load of each piece of data for each server in the proportion of the load; sorting by the N server as high load server, the load of sorting on the N server as a low load server; the server load ratio in the data sheet before ranking as the source data, the low load server load accounted for sorting in the post data sheet as target data, target data and source data on tablets. The invention also discloses a device for leveling the load of the distributed database. The invention reduces the server load in high load, and avoid high server load data sheet transferred to low load server due to low server load excessive load, reduce the load of the distributed database system.

【技术实现步骤摘要】
分布式数据库负载调平的方法和装置
本专利技术涉及到互联网
,特别涉及到分布式数据库负载调平的方法和装置。
技术介绍
近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展。分布式数据库将原来集中式数据库中的数据分割成大量数据片,分散存储到多个独立的数据存储节点上,利用网络将物理上分散的多个数据存储单元连接起来,组成一个逻辑上统一的数据库。它采用可扩展的系统结构,利用多台服务器分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。为了维护数据片的均衡分布,当一台服务器上的数据片数量在整个分布式数据库系统中的分布达到移动阈值(MigrationThresholds)时,就需要将数目最多的服务器上的数据片移动到数目比较少的服务器上。例如,数据集合在服务器A上有100个数据片,在服务器B上有50个数据片,就需将服务器A上的数据片移动到服务器B上,直至数据集合在两台服务器上的数据片数量相等。但是,现有的均衡分布的方式只考虑到数据片的容量大小,如果被移动的数据片占用负载过高,当将它移动到其他服务器后,会造成其他服务器的负荷过大,仍然会影响到整个分布式数据库系统的总体效率。
技术实现思路
本专利技术实施例提供一种分布式数据库负载调平的方法和装置,有效降低整个分布式数据库系统的负荷。本专利技术实施例提出一种分布式数据库负载调平的方法,包括步骤:在一个统计周期内统计分布式数据库系统中所有服务器的负载量和每一个所述服务器中的每一个数据片的负载占比;将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为高负载服务器,将排序靠后的n个所述服务器作为低负载服务器,n为正整数;将顺序第i个所述高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个所述低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;将顺序第i个所述高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个所述低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个所述目标数据片与第i个所述源数据片对调;依此循环,直至调平所有高负载服务器。本专利技术实施例还提出一种分布式数据库负载调平的装置,包括:统计模块,用于在一个统计周期内统计分布式数据库系统中所有服务器的负载量和每一个所述服务器中的每一个数据片的负载占比;排序模块,用于将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为高负载服务器,将排序靠后的n个所述服务器作为低负载服务器,n为正整数;将顺序第i个所述高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个所述低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;调整模块,用于将顺序第i个所述高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个所述低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个所述目标数据片与第i个所述源数据片对调;依此循环,直至调平所有高负载服务器。本专利技术实施例的布式数据库系统根据服务器的负载情况对服务器排序,分别筛选出高负载服务器和低负载服务器,并将高负载服务器中的高负载占比的数据片与低负载服务器中的低负载占比的数据片对调,一方面有效降低了高负载服务器中的负载量,另一方面,由于低负载服务器将一部分数据片调出,减少了一部分负载压力,为新调入的数据片空出了一部分的负载空间,避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况,有效降低整个分布式数据库系统的负荷。附图说明图1为本专利技术实施例中分布式数据库负载调平的装置所在系统的总线图;图2为本专利技术分布式数据库负载调平的方法的第一实施例的流程图;图3为本专利技术分布式数据库负载调平的方法的第二实施例的流程图;图4为本专利技术分布式数据库负载调平的方法的第三实施例的流程图;图5为本专利技术分布式数据库负载调平的方法的第四实施例的流程图;图6为本专利技术分布式数据库负载调平的方法的第五实施例的流程图;图7为本专利技术分布式数据库负载调平的方法的第六实施例的流程图;图8为本专利技术分布式数据库负载调平的装置的第一实施例的模块示意图;图9为本专利技术分布式数据库负载调平的装置的第二实施例的模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,图1为本专利技术实施例中分布式数据库负载调平的装置所在系统的总线图。该系统可以包括:至少一个处理器101,例如CPU,至少一个网络接口104,用户接口103,存储器105,至少一个通信总线102。其中,通信总线102用于实现这些组件之间的连接通信。其中,用户接口103可以包括显示屏(Display)、键盘(Keyboard),还可以包括标准的有线接口、无线接口。网络接口104可以包括标准的有线接口、无线接口(如WIFI接口)。存储器105可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器105还可以是至少一个位于远离前述处理器101的存储装置。作为一种计算机存储介质的存储器105中可以包括操作系统、网络通信模块、用户接口模块以及分布式数据库负载调平程序。在图1所示的分布式数据库负载调平的装置所在系统中,网络接口104主要用于连接服务器或终端,与服务器或终端进行数据通信;而用户接口103主要用于接收用户指令,并与用户进行交互;而处理器101可以用于调用存储器105中存储的分布式数据库负载调平程序,并执行以下操作:在一个统计周期内统计分布式数据库系统中所有服务器的负载量和每一个服务器中的每一个数据片的负载占比;将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个服务器作为高负载服务器,将排序靠后的n个服务器作为低负载服务器,n为正整数;将顺序第i个高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;将顺序第i个高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个目标数据片与第i个源数据片对调;依此循环,直至调平所有高负载服务器。在一个实施例中,处理器101调用存储器105中存储的分布式数据库负载调平程序还可以执行以下操作:将倒序第i个低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片;将顺序第i个高负载服务器中负载占比排序第一位的数据片作为第i个源数据片;预判断如果将第i个目标数据片与第i个源数据片对调后,倒序第i个低负载服务器的总的负载占比是否超过负载占比阈值;如果是,则将第i个源数据片更新为高负载服务器中负载占比排序下一位的数据片,并预判断如果将第i个目标数据片与更新后的第i个源数据片对调后,倒序第i个低负载服务器的总的负载占比是否超过负载占比阈值;依此循环,直至倒序第i个低负载服务器的总的负载占比小于或等于负载占比阈值。在一个实施例中,处理器101调用存储器105中存储的分布式数据库负载调平程序还可以执行以下操本文档来自技高网...
分布式数据库负载调平的方法和装置

【技术保护点】
一种分布式数据库负载调平的方法,其特征在于,包括步骤:在一个统计周期内统计分布式数据库系统中所有服务器的负载量和每一个所述服务器中的每一个数据片的负载占比;将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为高负载服务器,将排序靠后的n个所述服务器作为低负载服务器,n为正整数;将顺序第i个所述高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个所述低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;将顺序第i个所述高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个所述低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个所述目标数据片与第i个所述源数据片对调;依此循环,直至调平所有高负载服务器。

【技术特征摘要】
1.一种分布式数据库负载调平的方法,其特征在于,包括步骤:在一个统计周期内统计分布式数据库系统中所有服务器的负载量和每一个所述服务器中的每一个数据片的负载占比;将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为高负载服务器,将排序靠后的n个所述服务器作为低负载服务器,n为正整数;将顺序第i个所述高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个所述低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;将顺序第i个所述高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个所述低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个所述目标数据片与第i个所述源数据片对调;依此循环,直至调平所有高负载服务器。2.如权利要求1所述的分布式数据库负载调平的方法,其特征在于,所述将顺序第i个所述高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个所述低负载服务器中负载占比排序在后的数据片作为第i个目标数据片的步骤包括:将倒序第i个所述低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片;将顺序第i个所述高负载服务器中负载占比排序第一位的数据片作为第i个源数据片;预判断如果将第i个所述目标数据片与第i个所述源数据片对调后,倒序第i个所述低负载服务器的总的负载占比是否超过负载占比阈值;如果是,则将第i个所述源数据片更新为所述高负载服务器中负载占比排序下一位的数据片,并预判断如果将第i个所述目标数据片与更新后的第i个所述源数据片对调后,倒序第i个所述低负载服务器的总的负载占比是否超过所述负载占比阈值;依此循环,直至倒序第i个所述低负载服务器的总的负载占比小于或等于所述负载占比阈值。3.如权利要求2所述的分布式数据库负载调平的方法,其特征在于,所述将倒序第i个所述低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片的步骤之前还包括:判断顺序第i个所述高负载服务器中负载占比排序第一位的数据片的负载占比是否超过所述负载占比阈值;如果是,则拒绝调换顺序第i个所述高负载服务器中的数据片;如果否,则执行将倒序第i个所述低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片的步骤。4.如权利要求1至3任一项所述的分布式数据库负载调平的方法,其特征在于,所述直至调平所有高负载服务器的步骤之后还包括:将下一个统计周期作为当前统计周期,在当前统计周期内统计所有服务器的负载量;将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为当前统计周期的高负载服务器;判断当前统计周期的n个高负载服务器是否与前一个统计周期的n个高负载服务器相同;如果是,则增大所述负载占比阈值,在当前统计周期内,重新调平所有高负载服务器。5.如权利要求1至3任一项所述的分布式数据库负载调平的方法,其特征在于,所述将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为高负载服务器,将排序靠后的n个所述服务器作为低负载服务器的步骤包括:将各服务器按照CPU负载量从高到低的顺序排序,将排序靠前的n1个所述服务器作为第一组高负载服务器,将排序靠后的n1个所述服务器作为第一组低负载服务器,n1为小于n的正整数;在各服务器中剔除第一组高负载服务器和第一组低负载服务器,将剩下的服务器按照流量负载量从高到低的顺序排序,将排序靠前的n2个所述服务器作为第二组高负载服务器,将排序靠后的n2个所述服务器作为第二组低负载服务器,n2为小于n的正整数,且n1+n2=n。6.如权利要求1至3任一项所述的分布式数据库负载调平的方法,其特征在于,所述将第i个所述目标数据片与第i个所述源数据片对调的步骤包括:从所述分布式数据库系统中获取空闲服务器;将第i个源数据片从顺序第i个所述高负载服务器转移到所述空闲服务器中;将第i个目标数据片从倒序第i个所述低负载服务器转移到顺序第i个所述高负载服务器中;将已...

【专利技术属性】
技术研发人员:邹润谋
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1