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个所述服务器作为高负载服务器,将排序靠后的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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。