CN106713377A - 分布式数据库负载调平的方法和装置 - Google Patents
分布式数据库负载调平的方法和装置 Download PDFInfo
- Publication number
- CN106713377A CN106713377A CN201510456585.2A CN201510456585A CN106713377A CN 106713377 A CN106713377 A CN 106713377A CN 201510456585 A CN201510456585 A CN 201510456585A CN 106713377 A CN106713377 A CN 106713377A
- Authority
- CN
- China
- Prior art keywords
- server
- load
- low
- accounting
- high capacity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种分布式数据库负载调平的方法,包括:统计分布式数据库***中所有服务器的负载量和每一个服务器中每一个数据片的负载占比;将负载量排序排序靠前的n个服务器作为高负载服务器,将负载量排序排序靠后的n个服务器作为低负载服务器;将高负载服务器中负载占比排序在前的数据片作为源数据片,将低负载服务器中负载占比排序在后的数据片作为目标数据片,将目标数据片与源数据片对调。本发明还公开了一种分布式数据库负载调平的装置。本发明降低了高负载服务器中的负载量,且避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况,有效降低整个分布式数据库***的负荷。
Description
技术领域
本发明涉及到互联网技术领域,特别涉及到分布式数据库负载调平的方法和装置。
背景技术
近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展。分布式数据库将原来集中式数据库中的数据分割成大量数据片,分散存储到多个独立的数据存储节点上,利用网络将物理上分散的多个数据存储单元连接起来,组成一个逻辑上统一的数据库。它采用可扩展的***结构,利用多台服务器分担存储负荷,不但提高了***的可靠性、可用性和存取效率,还易于扩展。为了维护数据片的均衡分布,当一台服务器上的数据片数量在整个分布式数据库***中的分布达到移动阈值(Migration Thresholds)时,就需要将数目最多的服务器上的数据片移动到数目比较少的服务器上。例如,数据集合在服务器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-volatile memory),例如至少一个磁盘存储器。存储器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中存储的分布式数据库负载调平程序还可以执行以下操作:
判断顺序第i个高负载服务器中负载占比排序第一位的数据片的负载占比是否超过负载占比阈值;
如果是,则拒绝调换顺序第i个高负载服务器中的数据片;
如果否,则执行将倒序第i个低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片的步骤。
在一个实施例中,处理器101调用存储器105中存储的分布式数据库负载调平程序还可以执行以下操作:
将下一个统计周期作为当前统计周期,在当前统计周期内统计所有服务器的负载量;
将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个服务器作为当前统计周期的高负载服务器;
判断当前统计周期的n个高负载服务器是否与前一个统计周期的n个高负载服务器相同;
如果是,则增大负载占比阈值,在当前统计周期内,重新调平所有高负载服务器。
在一个实施例中,处理器101调用存储器105中存储的分布式数据库负载调平程序还可以执行以下操作:
将各服务器按照CPU负载量从高到低的顺序排序,将排序靠前的n1个服务器作为第一组高负载服务器,将排序靠后的n1个服务器作为第一组低负载服务器,n1为小于n的正整数;
在各服务器中剔除第一组高负载服务器和第一组低负载服务器,将剩下的服务器按照流量负载量从高到低的顺序排序,将排序靠前的n2个服务器作为第二组高负载服务器,将排序靠后的n2个服务器作为第二组低负载服务器,n2为小于n的正整数,且n1+n2=n。
在一个实施例中,处理器101调用存储器105中存储的分布式数据库负载调平程序还可以执行以下操作:
从分布式数据库***中获取空闲服务器;
将第i个源数据片从顺序第i个高负载服务器转移到空闲服务器中;
将第i个目标数据片从倒序第i个低负载服务器转移到顺序第i个高负载服务器中;
将已转移到空闲服务器上的第i个源数据片转移到倒序第i个低负载服务器中。
本实施例图1所描述的分布式数据库负载调平的装置及其所在的布式数据库***,根据服务器的负载情况对服务器排序,分别筛选出高负载服务器和低负载服务器,并将高负载服务器中的高负载占比的数据片与低负载服务器中的低负载占比的数据片对调,一方面有效降低了高负载服务器中的负载量,另一方面,由于低负载服务器将一部分数据片调出,减少了一部分负载压力,为新调入的数据片空出了一部分的负载空间,避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况,有效降低整个分布式数据库***的负荷。
如图2所示,图2为本发明分布式数据库负载调平的方法的第一实施例的流程图。本实施例提到的分布式数据库负载调平的方法,包括步骤:
步骤S10,在一个统计周期内统计分布式数据库***中所有服务器的负载量和每一个服务器中的每一个数据片的负载占比;
本实施例的分布式数据库***中包括多个分片的服务器,每个服务器上加载有多个数据片。预先在每个服务器上部署监控上报程序,定时将每个数据片的数据请求量、数据片访问时所占的流量等信息上报到分布式数据库***中的统计库中。同时,***还从网管服务器获得当前统计周期内各服务器的负载量。***根据当统计周期内上报的某一个数据片的数据请求量、访问流量等信息,以及该数据片所在的服务器的负载量,获得该数据片在该服务器的负载量中的负载占比,即服务器处理该数据片的访问请求时为服务器带来的负载量在该服务器的总的负载量中的比例。一个统计周期可以是一天24小时,或更长时间段。以24小时为例,监控上报程序可每隔5分钟上报一次数据,则一天24小时内一个数据片就有288个上报信息。为了便于统计,可将288个上报信息点合成一个长的上报信息链,那么一个数据片就只对应一个上报信息链。同时,***可在每一天的固定时刻从网管服务器获得各服务器的负载量,例如每天的凌晨1点钟。
步骤S20,将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个服务器作为高负载服务器,将排序靠后的n个服务器作为低负载服务器,n为正整数;
为了实现负载调平,本实施例将高负载服务器中的数据片与低负载服务器中的数据片对调。***可根据统计的服务器负载量从高到低的顺序对各服务器依次排序,排在最前端的服务器负载量最高,排在最后端的服务器负载量最低。将前n个服务器作为高负载服务器,后n个服务器作为低负载服务器,调平就是在这两组服务器中进行数据片对调。
步骤S30,将顺序第i个高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;
可预先将一个高负载服务器与一个低负载服务器配对成一组。本实施例中,各高负载服务器按照负载量从高到低的顺序排序,各低负载服务器也按照负载量从高到低的顺序排序。可将高负载服务器队列中顺序第i个高负载服务器与低负载服务器队列中倒序第i个低负载服务器配对成一组,例如将最大负载量的高负载服务器与最小负载量的低负载服务器配对,将第二大负载量的高负载服务器与第二小负载量的低负载服务器配对,以此类推。或者可将高负载服务器队列中顺序第i个高负载服务器与低负载服务器队列中顺序第i个低负载服务器配对成一组;或者随机分配。对于每一组配对的高负载服务器与低负载服务器,都对服务器各自的数据片进行排序,排序方式按照负载占比从高到低的顺序排序。
步骤S40,将顺序第i个高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个低负载服务器中负载占比排序在后的数据片作为第i个目标数据片;
步骤S50,将第i个目标数据片与第i个源数据片对调;
为了降低高负载服务器的负载量,可将高负载服务器中的数据片移动到低负载服务器中,而为了避免因过多负荷加载到低负载服务器造成低负载服务器的负载量过大,本实施例可只将高负载服务器中负载占比较高的一个或几个数据片移动到低负载服务器中,同时还将低负载服务器中负载占比较低的数据片移动到高负载服务器中,两个服务器中移动的数据片个数相等,实现高低负载服务器之间的数据片对调。如此一来,高负载服务器中的负载量得到了有效降低,同时,由于低负载服务器将一部分数据片调出,减少了一部分负载压力,为新调入的数据片空出了一部分的负载空间,有效避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况。
步骤S60,判断是否已调平所有高负载服务器;如果是,则跳转步骤S61;如果否,则i+1,返回步骤S30;
步骤S61,判定调平完成。
在完成一组配对的高低负载服务器之间的源数据片和目标数据片对调后,再继续对下一组配对的服务器进行源数据片和目标数据片对调,直至将所有配对组的源数据片和目标数据片对调完成,结束本次调平程序。
本实施例的布式数据库***根据服务器的负载情况对服务器排序,分别筛选出高负载服务器和低负载服务器,并将高负载服务器中的高负载占比的数据片与低负载服务器中的低负载占比的数据片对调,一方面有效降低了高负载服务器中的负载量,另一方面,由于低负载服务器将一部分数据片调出,减少了一部分负载压力,为新调入的数据片空出了一部分的负载空间,避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况,有效降低整个分布式数据库***的负荷。
如图3所示,图3为本发明分布式数据库负载调平的方法的第二实施例的流程图。本实施例包括图2所示实施例的步骤,其中的步骤S40包括:
步骤S41,将倒序第i个低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片;
本实施例中,对于根据负载量从高到底排序的低负载服务器,排在前端的低负载服务器的负载量较高,排在后端的低负载服务器的负载量较低,同理,对于高负载服务器,排在前端的高负载服务器的负载量较高,排在后端的高负载服务器的负载量较低。为了让分布式数据库***的负载获得最有效的调平,可将最高负载的服务器与最低负载的服务器配对,第二高负载的服务器与第二低负载的服务器配对,以此类推,即顺序第i个高负载服务器与倒序第i个低负载服务器配对成一组。
对于一配对组中的高低负载服务器,本实施例中只将高负载服务器中的一个数据片与低负载服务器中的一个数据片对调,当然,也可以对调多个,可采用与对调一对数据片相同的方式推导实现。在低负载服务器中确定目标数据片,为显著降低高负载服务器的负载,将低负载服务器中负载占比最低的数据片(即负载占比排序最后一位的数据片)作为目标数据片。
步骤S42,将顺序第i个高负载服务器中负载占比排序第j位的数据片作为第i个源数据片;
在高负载服务器中确定源数据片,但并不直接将确定的源数据片与目标数据片对调,而是要先对选择的源数据片是否合适进行预判断。在确定源数据片时,选择负载占比排序第j位的数据片作为源数据片,其中,j的初始值为1,即在初始时,首先从高负载服务器中负载占比最高的数据片开始选择,如果经过预判断,该数据片在对调后不能缓解整个分布式数据库***的负载压力,则选择负载占比第二高的数据片作为原数据片,再进行预判断。
步骤S43,预判断如果将第i个目标数据片与第i个源数据片对调后,倒序第i个低负载服务器的总的负载占比是否超过负载占比阈值;如果是,则j+1,返回步骤S42;如果否,则执行步骤S50;
在预判断时,假设将目标数据片与源数据片对调,低负载服务器中原有的总的负载占比减去目标数据片的负载占比,再加上源数据片的负载占比,比较新计算的低负载服务器的总的负载占比是否超过负载占比阈值。如果是,则说明本次选择的源数据片不合适,对调后会造成低负载服务器的负载过高,此时需重新选择新的源数据片,将源数据片更新为高负载服务器中负载占比排序下一位的数据片,并重新进行预判断。依此循环,直至低负载服务器的总的负载占比小于或等于负载占比阈值,说明当前选择的源数据片是合理的,将目标数据片与源数据片对调后,不会造成低负载服务器的负载过高。
本实施例在对调高低负载服务器中的数据片前,预先判断对调后是否会对低负载服务器带来过高的负载,如果是,则重新选择新的源数据片,并重新进行预判断,直至选择的源数据片在与目标数据片对调后不会造成低负载服务器负载过高,在降低高负载服务器负载的同时,也保证了低负载服务器的正常负载,确保整个分布式数据库***的有效运行。
如图4所示,图4为本发明分布式数据库负载调平的方法的第三实施例的流程图。本实施例包括图3所示实施例的步骤,在步骤S41之前还包括:
步骤S44,判断顺序第i个高负载服务器中负载占比排序第一位的数据片的负载占比是否超过负载占比阈值;如果是,则执行步骤S45;如果否,则执行步骤S41;
步骤S45,拒绝调换顺序第i个高负载服务器中的数据片。
本实施例在进行预判断和数据片调平前,还判断高负载服务器中数据片的负载占比是否过高。如果将负载占比过高的数据片转移到低负载服务器中,会造成低负载服务器的负载过大,在下次调平时会将原来的低负载服务器作为高负载服务器,重新将该负载占比过高的数据片调出,造成重复转移数据片。此时,为了避免重复转移操作,暂时不对包括有过高负载占比数据片的高负载服务器进行处理,而采用其他措施或转至手动处理的方式进行处理。此外,对于与未处理的高负载服务器配对的低负载服务器,可以将其与其他的高负载服务器重新配对,也可以对其保留,在下次调平时再进行配对。
如图5所示,图5为本发明分布式数据库负载调平的方法的第四实施例的流程图。本实施例包括图2所示实施例的步骤,步骤S61之后还包括:
步骤S71,将下一个统计周期作为当前统计周期,在当前统计周期内统计所有服务器的负载量;
步骤S72,将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个服务器作为当前统计周期的高负载服务器;
步骤S73,判断当前统计周期的n个高负载服务器是否与前一个统计周期的n个高负载服务器相同;如果是,则执行步骤S74;如果否,则返回步骤S10;
步骤S74,增大负载占比阈值,并返回步骤S10。
本实施例还对调平策略是否合理进行判断,统计下一个周期内各服务器运行时的负载情况,判断前一次调平后各服务器的负载量是否有所改善。例如,在7号凌晨1点,统计6号凌晨1点至7号凌晨1点各服务器负载情况,并对其进行第一次调平,***继续运行,在8号凌晨1点,统计7号凌晨1点至8号凌晨1点各服务器负载情况,并分析7号第一次调平的结果是否合理,如果合理,则继续采用该调平策略进行第二次调平,否则,调整调平策略,并采用新的调平策略进行第二次调平。在统计的数据中,仍然根据服务器负载量筛选出高负载服务器。如果调平后再运行一个统计周期后筛选的高负载服务器与调平前的高负载服务器一样,则说明之前的高负载服务器的负载压力并未得到缓解,调平策略无效。此时需调整调平策略,例如增大负载占比阈值,从高负载服务器选择负载占比较大的数据片作为源数据片,使高负载服务器中有更多的负载占比转移到低负载服务器中,确保调平策略的有效性。
如图6所示,图6为本发明分布式数据库负载调平的方法的第五实施例的流程图。本实施例包括图2所示实施例的步骤,其中的步骤S20包括:
步骤S21,将各服务器按照CPU负载量从高到低的顺序排序,将排序靠前的n1个服务器作为第一组高负载服务器,将排序靠后的n1个服务器作为第一组低负载服务器,n1为小于n的正整数;
步骤S22,在各服务器中剔除第一组高负载服务器和第一组低负载服务器,将剩下的服务器按照流量负载量从高到低的顺序排序,将排序靠前的n2个服务器作为第二组高负载服务器,将排序靠后的n2个服务器作为第二组低负载服务器,n2为小于n的正整数,且n1+n2=n。
本实施例在筛选高低负载服务器时,可从CPU负载量和流量负载量两方面进行排序,CPU负载量和流量负载量的优先级可预先设置。本实施例以CPU负载量优先级高于流量负载量优先级为例。先将***中的服务器按照CPU负载量从高到低的顺序排序,筛选出第一组高负载服务器和第一组低负载服务器,再对剩下的服务器进行第二次筛选,将剩下的服务器按照流量负载量从高到低的顺序排序,筛选出第二组高负载服务器和第二组低负载服务器。在配对时,第一组高负载服务器与第一组低负载服务器一一配对,第二组高负载服务器与第二组低负载服务器一一配对。调换数据片时,也是分别在第一组高负载服务器与第一组低负载服务器之间、第二组高负载服务器与第二组低负载服务器之间进行调换。由于本实施例分别从CPU负载量和流量负载量两方面分别筛选需调换数据片的服务器,使数据片调换更加有针对性,进一步使调平策略更加有效,有利于降低整个分布式数据库***的负荷。
如图7所示,图7为本发明分布式数据库负载调平的方法的第六实施例的流程图。本实施例包括图2所示实施例的步骤,其中的步骤S50包括:
步骤S51,从分布式数据库***中获取空闲服务器;
步骤S52,将第i个源数据片从顺序第i个高负载服务器转移到空闲服务器中;
步骤S53,将第i个目标数据片从倒序第i个低负载服务器转移到顺序第i个高负载服务器中;
步骤S54,将已转移到空闲服务器上的第i个源数据片转移到倒序第i个低负载服务器中。
本实施例为了避免在低负载服务器没有空闲时,如果源数据片直接转移到低负载服务器,会造成低负载服务器负载较高,影响数据片转移效率。因此在分布式数据库***中会预留一部分空闲资源,即空闲的服务器,将源数据片先从高负载服务器转移到空闲服务器中,等目标数据片从低负载服务器中挪出后,再将源数据片转移到目标数据片。当然,如果低负载服务器上原本就有空闲,可直接将源数据片从高负载服务器转移到低负载服务器,再将目标数据片从低负载服务器转移到高负载服务器中。可预先判断低负载服务器是否有空闲,如果是则直接调换,如果否,再通过空闲服务器进行中转。如此一来,有利于提高数据片转移的效率,确保负载调平的高效进行。
如图8所示,图8为本发明分布式数据库负载调平的装置的第一实施例的模块示意图。本实施例提出的分布式数据库负载调平的装置,包括:
统计模块10,用于在一个统计周期内统计分布式数据库***中所有服务器的负载量和每一个服务器中的每一个数据片的负载占比;
排序模块20,用于将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个服务器作为高负载服务器,将排序靠后的n个服务器作为低负载服务器,n为正整数;将顺序第i个高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;
调整模块30,用于将顺序第i个高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个目标数据片与第i个源数据片对调;依此循环,直至调平所有高负载服务器。
本实施例的分布式数据库***中包括多个分片的服务器,每个服务器上加载有多个数据片。预先在每个服务器上部署监控上报程序,定时将每个数据片的数据请求量、数据片访问时所占的流量等信息上报到分布式数据库***中的统计库中。同时,***还从网管服务器获得当前统计周期内各服务器的负载量。***根据当统计周期内上报的某一个数据片的数据请求量、访问流量等信息,以及该数据片所在的服务器的负载量,获得该数据片在该服务器的负载量中的负载占比,即服务器处理该数据片的访问请求时为服务器带来的负载量在该服务器的总的负载量中的比例。一个统计周期可以是一天24小时,或更长时间段。以24小时为例,监控上报程序可每隔5分钟上报一次数据,则一天24小时内一个数据片就有288个上报信息。为了便于统计,可将288个上报信息点合成一个长的上报信息链,那么一个数据片就只对应一个上报信息链。同时,***可在每一天的固定时刻从网管服务器获得各服务器的负载量,例如每天的凌晨1点钟。
为了实现负载调平,本实施例将高负载服务器中的数据片与低负载服务器中的数据片对调。***可根据统计的服务器负载量从高到低的顺序对各服务器依次排序,排在最前端的服务器负载量最高,排在最后端的服务器负载量最低。将前n个服务器作为高负载服务器,后n个服务器作为低负载服务器,调平就是在这两组服务器中进行数据片对调。
可预先将一个高负载服务器与一个低负载服务器配对成一组。本实施例中,各高负载服务器按照负载量从高到低的顺序排序,各低负载服务器也按照负载量从高到低的顺序排序。可将高负载服务器队列中顺序第i个高负载服务器与低负载服务器队列中倒序第i个低负载服务器配对成一组,例如将最大负载量的高负载服务器与最小负载量的低负载服务器配对,将第二大负载量的高负载服务器与第二小负载量的低负载服务器配对,以此类推。或者可将高负载服务器队列中顺序第i个高负载服务器与低负载服务器队列中顺序第i个低负载服务器配对成一组;或者随机分配。对于每一组配对的高负载服务器与低负载服务器,都对服务器各自的数据片进行排序,排序方式按照负载占比从高到低的顺序排序。
为了降低高负载服务器的负载量,可将高负载服务器中的数据片移动到低负载服务器中,而为了避免因过多负荷加载到低负载服务器造成低负载服务器的负载量过大,本实施例可只将高负载服务器中负载占比较高的一个或几个数据片移动到低负载服务器中,同时还将低负载服务器中负载占比较低的数据片移动到高负载服务器中,两个服务器中移动的数据片个数相等,实现高低负载服务器之间的数据片对调。如此一来,高负载服务器中的负载量得到了有效降低,同时,由于低负载服务器将一部分数据片调出,减少了一部分负载压力,为新调入的数据片空出了一部分的负载空间,有效避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况。
在完成一组配对的高低负载服务器之间的源数据片和目标数据片对调后,再继续对下一组配对的服务器进行源数据片和目标数据片对调,直至将所有配对组的源数据片和目标数据片对调完成,结束本次调平程序。
本实施例的布式数据库***根据服务器的负载情况对服务器排序,分别筛选出高负载服务器和低负载服务器,并将高负载服务器中的高负载占比的数据片与低负载服务器中的低负载占比的数据片对调,一方面有效降低了高负载服务器中的负载量,另一方面,由于低负载服务器将一部分数据片调出,减少了一部分负载压力,为新调入的数据片空出了一部分的负载空间,避免了因高负载服务器将数据片调入低负载服务器造成低负载服务器负荷过大的情况,有效降低整个分布式数据库***的负荷。
如图9所示,图9为本发明分布式数据库负载调平的装置的第二实施例的模块示意图。本实施例包括图8所示实施例的模块,还包括判断模块40;
调整模块30还用于,将倒序第i个低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片;将顺序第i个高负载服务器中负载占比排序第一位的数据片作为第i个源数据片;
判断模块40用于,预判断如果将第i个目标数据片与第i个源数据片对调后,倒序第i个低负载服务器的总的负载占比是否超过负载占比阈值;
调整模块30还用于,当判断模块40判定倒序第i个低负载服务器的总的负载占比超过负载占比阈值时,将第i个源数据片更新为高负载服务器中负载占比排序下一位的数据片;
判断模块40还用于,预判断如果将第i个目标数据片与更新后的第i个源数据片对调后,倒序第i个低负载服务器的总的负载占比是否超过负载占比阈值;依此循环,直至倒序第i个低负载服务器的总的负载占比小于或等于负载占比阈值。
本实施例中,对于根据负载量从高到底排序的低负载服务器,排在前端的低负载服务器的负载量较高,排在后端的低负载服务器的负载量较低,同理,对于高负载服务器,排在前端的高负载服务器的负载量较高,排在后端的高负载服务器的负载量较低。为了让分布式数据库***的负载获得最有效的调平,可将最高负载的服务器与最低负载的服务器配对,第二高负载的服务器与第二低负载的服务器配对,以此类推,即顺序第i个高负载服务器与倒序第i个低负载服务器配对成一组。
对于一配对组中的高低负载服务器,本实施例中只将高负载服务器中的一个数据片与低负载服务器中的一个数据片对调,当然,也可以对调多个,可采用与对调一对数据片相同的方式推导实现。在低负载服务器中确定目标数据片,为显著降低高负载服务器的负载,将低负载服务器中负载占比最低的数据片(即负载占比排序最后一位的数据片)作为目标数据片。
在高负载服务器中确定源数据片,但并不直接将确定的源数据片与目标数据片对调,而是要先对选择的源数据片是否合适进行预判断。在确定源数据片时,选择负载占比排序第j位的数据片作为源数据片,其中,j的初始值为1,即在初始时,首先从高负载服务器中负载占比最高的数据片开始选择,如果经过预判断,该数据片在对调后不能缓解整个分布式数据库***的负载压力,则选择负载占比第二高的数据片作为原数据片,再进行预判断。
在预判断时,假设将目标数据片与源数据片对调,低负载服务器中原有的总的负载占比减去目标数据片的负载占比,再加上源数据片的负载占比,比较新计算的低负载服务器的总的负载占比是否超过负载占比阈值。如果是,则说明本次选择的源数据片不合适,对调后会造成低负载服务器的负载过高,此时需重新选择新的源数据片,将源数据片更新为高负载服务器中负载占比排序下一位的数据片,并重新进行预判断。依此循环,直至低负载服务器的总的负载占比小于或等于负载占比阈值,说明当前选择的源数据片是合理的,将目标数据片与源数据片对调后,不会造成低负载服务器的负载过高。
本实施例在对调高低负载服务器中的数据片前,预先判断对调后是否会对低负载服务器带来过高的负载,如果是,则重新选择新的源数据片,并重新进行预判断,直至选择的源数据片在与目标数据片对调后不会造成低负载服务器负载过高,在降低高负载服务器负载的同时,也保证了低负载服务器的正常负载,确保整个分布式数据库***的有效运行。
进一步的,判断模块40还用于,判断顺序第i个高负载服务器中负载占比排序第一位的数据片的负载占比是否超过负载占比阈值;
如果是,则调整模块30还用于拒绝调换顺序第i个高负载服务器中的数据片;
如果否,则调整模块30还用于将倒序第i个低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片。
本实施例在进行预判断和数据片调平前,还判断高负载服务器中数据片的负载占比是否过高。如果将负载占比过高的数据片转移到低负载服务器中,会造成低负载服务器的负载过大,在下次调平时会将原来的低负载服务器作为高负载服务器,重新将该负载占比过高的数据片调出,造成重复转移数据片。此时,为了避免重复转移操作,暂时不对包括有过高负载占比数据片的高负载服务器进行处理,而采用其他措施或转至手动处理的方式进行处理。此外,对于与未处理的高负载服务器配对的低负载服务器,可以将其与其他的高负载服务器重新配对,也可以对其保留,在下次调平时再进行配对。
进一步的,统计模块10还用于,将下一个统计周期作为当前统计周期,在当前统计周期内统计所有服务器的负载量;
排序模块20还用于,将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个服务器作为当前统计周期的高负载服务器;
判断模块40用于,判断当前统计周期的n个高负载服务器是否与前一个统计周期的n个高负载服务器相同;
如果是,则调整模块30还用于增大负载占比阈值,在当前统计周期内,重新调平所有高负载服务器。
本实施例还对调平策略是否合理进行判断,统计下一个周期内各服务器运行时的负载情况,判断前一次调平后各服务器的负载量是否有所改善。例如,在7号凌晨1点,统计6号凌晨1点至7号凌晨1点各服务器负载情况,并对其进行第一次调平,***继续运行,在8号凌晨1点,统计7号凌晨1点至8号凌晨1点各服务器负载情况,并分析7号第一次调平的结果是否合理,如果合理,则继续采用该调平策略进行第二次调平,否则,调整调平策略,并采用新的调平策略进行第二次调平。在统计的数据中,仍然根据服务器负载量筛选出高负载服务器。如果调平后再运行一个统计周期后筛选的高负载服务器与调平前的高负载服务器一样,则说明之前的高负载服务器的负载压力并未得到缓解,调平策略无效。此时需调整调平策略,例如增大负载占比阈值,从高负载服务器选择负载占比较大的数据片作为源数据片,使高负载服务器中有更多的负载占比转移到低负载服务器中,确保调平策略的有效性。
进一步的,排序模块20还用于:
将各服务器按照CPU负载量从高到低的顺序排序,将排序靠前的n1个服务器作为第一组高负载服务器,将排序靠后的n1个服务器作为第一组低负载服务器,n1为小于n的正整数;
在各服务器中剔除第一组高负载服务器和第一组低负载服务器,将剩下的服务器按照流量负载量从高到低的顺序排序,将排序靠前的n2个服务器作为第二组高负载服务器,将排序靠后的n2个服务器作为第二组低负载服务器,n2为小于n的正整数,且n1+n2=n。
本实施例在筛选高低负载服务器时,可从CPU负载量和流量负载量两方面进行排序,CPU负载量和流量负载量的优先级可预先设置。本实施例以CPU负载量优先级高于流量负载量优先级为例。先将***中的服务器按照CPU负载量从高到低的顺序排序,筛选出第一组高负载服务器和第一组低负载服务器,再对剩下的服务器进行第二次筛选,将剩下的服务器按照流量负载量从高到低的顺序排序,筛选出第二组高负载服务器和第二组低负载服务器。在配对时,第一组高负载服务器与第一组低负载服务器一一配对,第二组高负载服务器与第二组低负载服务器一一配对。调换数据片时,也是分别在第一组高负载服务器与第一组低负载服务器之间、第二组高负载服务器与第二组低负载服务器之间进行调换。由于本实施例分别从CPU负载量和流量负载量两方面分别筛选需调换数据片的服务器,使数据片调换更加有针对性,进一步使调平策略更加有效,有利于降低整个分布式数据库***的负荷。
进一步的,调整模块30还用于:
从分布式数据库***中获取空闲服务器;
将第i个源数据片从顺序第i个高负载服务器转移到空闲服务器中;
将第i个目标数据片从倒序第i个低负载服务器转移到顺序第i个高负载服务器中;
将已转移到空闲服务器上的第i个源数据片转移到倒序第i个低负载服务器中。
本实施例为了避免在低负载服务器没有空闲时,如果源数据片直接转移到低负载服务器,会造成低负载服务器负载较高,影响数据片转移效率。因此在分布式数据库***中会预留一部分空闲资源,即空闲的服务器,将源数据片先从高负载服务器转移到空闲服务器中,等目标数据片从低负载服务器中挪出后,再将源数据片转移到目标数据片。当然,如果低负载服务器上原本就有空闲,可直接将源数据片从高负载服务器转移到低负载服务器,再将目标数据片从低负载服务器转移到高负载服务器中。可预先判断低负载服务器是否有空闲,如果是则直接调换,如果否,再通过空闲服务器进行中转。如此一来,有利于提高数据片转移的效率,确保负载调平的高效进行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
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个所述高负载服务器中;
将已转移到所述空闲服务器上的第i个源数据片转移到倒序第i个所述低负载服务器中。
7.一种分布式数据库负载调平的装置,其特征在于,包括:
统计模块,用于在一个统计周期内统计分布式数据库***中所有服务器的负载量和每一个所述服务器中的每一个数据片的负载占比;
排序模块,用于将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为高负载服务器,将排序靠后的n个所述服务器作为低负载服务器,n为正整数;将顺序第i个所述高负载服务器中的各数据片按照负载占比从高到低的顺序排序,将倒序第i个所述低负载服务器中的各数据片按照负载占比从高到低的顺序排序,i为正整数;
调整模块,用于将顺序第i个所述高负载服务器中负载占比排序在前的数据片作为第i个源数据片,将倒序第i个所述低负载服务器中负载占比排序在后的数据片作为第i个目标数据片,将第i个所述目标数据片与第i个所述源数据片对调;依此循环,直至调平所有高负载服务器。
8.如权利要求7所述的分布式数据库负载调平的装置,其特征在于,还包括判断模块;
所述调整模块还用于,将倒序第i个所述低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片;将顺序第i个所述高负载服务器中负载占比排序第一位的数据片作为第i个源数据片;
所述判断模块用于,预判断如果将第i个所述目标数据片与第i个所述源数据片对调后,倒序第i个所述低负载服务器的总的负载占比是否超过负载占比阈值;
所述调整模块还用于,当所述判断模块判定倒序第i个所述低负载服务器的总的负载占比超过负载占比阈值时,将第i个所述源数据片更新为所述高负载服务器中负载占比排序下一位的数据片;
所述判断模块还用于,预判断如果将第i个所述目标数据片与更新后的第i个所述源数据片对调后,倒序第i个所述低负载服务器的总的负载占比是否超过所述负载占比阈值;依此循环,直至倒序第i个所述低负载服务器的总的负载占比小于或等于所述负载占比阈值。
9.如权利要求8所述的分布式数据库负载调平的装置,其特征在于,所述判断模块还用于,判断顺序第i个所述高负载服务器中负载占比排序第一位的数据片的负载占比是否超过所述负载占比阈值;
如果是,则所述调整模块还用于拒绝调换顺序第i个所述高负载服务器中的数据片;
如果否,则所述调整模块还用于将倒序第i个所述低负载服务器中负载占比排序最后一位的数据片作为第i个目标数据片。
10.如权利要求8或9所述的分布式数据库负载调平的装置,其特征在于,所述统计模块还用于,将下一个统计周期作为当前统计周期,在当前统计周期内统计所有服务器的负载量;
所述排序模块还用于,将各服务器按照负载量从高到低的顺序排序,将排序靠前的n个所述服务器作为当前统计周期的高负载服务器;
所述判断模块用于,判断当前统计周期的n个高负载服务器是否与前一个统计周期的n个高负载服务器相同;
如果是,则所述调整模块还用于增大所述负载占比阈值,在当前统计周期内,重新调平所有高负载服务器。
11.如权利要求7至9任一项所述的分布式数据库负载调平的装置,其特征在于,所述排序模块还用于:
将各服务器按照CPU负载量从高到低的顺序排序,将排序靠前的n1个所述服务器作为第一组高负载服务器,将排序靠后的n1个所述服务器作为第一组低负载服务器,n1为小于n的正整数;
在各服务器中剔除第一组高负载服务器和第一组低负载服务器,将剩下的服务器按照流量负载量从高到低的顺序排序,将排序靠前的n2个所述服务器作为第二组高负载服务器,将排序靠后的n2个所述服务器作为第二组低负载服务器,n2为小于n的正整数,且n1+n2=n。
12.如权利要求7至9任一项所述的分布式数据库负载调平的装置,其特征在于,所述调整模块还用于:
从所述分布式数据库***中获取空闲服务器;
将第i个源数据片从顺序第i个所述高负载服务器转移到所述空闲服务器中;
将第i个目标数据片从倒序第i个所述低负载服务器转移到顺序第i个所述高负载服务器中;
将已转移到所述空闲服务器上的第i个源数据片转移到倒序第i个所述低负载服务器中。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456585.2A CN106713377B (zh) | 2015-07-29 | 2015-07-29 | 分布式数据库负载调平的方法和装置 |
EP16829864.4A EP3331218B1 (en) | 2015-07-29 | 2016-07-28 | Method and device for leveling load of distributed database |
AU2016299084A AU2016299084A1 (en) | 2015-07-29 | 2016-07-28 | Method and device for leveling load of distributed database |
PCT/CN2016/092005 WO2017016499A1 (zh) | 2015-07-29 | 2016-07-28 | 分布式数据库负载调平的方法和装置 |
CA2990753A CA2990753A1 (en) | 2015-07-29 | 2016-07-28 | Method and apparatus for leveling loads of distributed databases |
JP2018522846A JP6615342B2 (ja) | 2015-07-29 | 2016-07-28 | 分散データベースの負荷を平準化するための方法および装置 |
KR1020187000181A KR102047900B1 (ko) | 2015-07-29 | 2016-07-28 | 분산 데이터베이스의 부하를 레벨링하는 방법 및 장치 |
US15/833,147 US10554737B2 (en) | 2015-07-29 | 2017-12-06 | Method and apparatus for leveling loads of distributed databases |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456585.2A CN106713377B (zh) | 2015-07-29 | 2015-07-29 | 分布式数据库负载调平的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106713377A true CN106713377A (zh) | 2017-05-24 |
CN106713377B CN106713377B (zh) | 2019-09-13 |
Family
ID=57884113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510456585.2A Active CN106713377B (zh) | 2015-07-29 | 2015-07-29 | 分布式数据库负载调平的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10554737B2 (zh) |
EP (1) | EP3331218B1 (zh) |
JP (1) | JP6615342B2 (zh) |
KR (1) | KR102047900B1 (zh) |
CN (1) | CN106713377B (zh) |
AU (1) | AU2016299084A1 (zh) |
CA (1) | CA2990753A1 (zh) |
WO (1) | WO2017016499A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360067A (zh) * | 2017-06-29 | 2017-11-17 | 青岛恒金源电子科技有限公司 | 一种智能家居***中的网络负载均衡方法 |
CN108600341A (zh) * | 2018-04-09 | 2018-09-28 | 广州悦世界信息科技有限公司 | 一种业务节点分配方法、决策节点及服务器集群 |
CN117271138A (zh) * | 2023-10-27 | 2023-12-22 | 山东三木众合信息科技股份有限公司 | 一种基于数据中心的数据处理方法及*** |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6612787B2 (ja) | 2015-02-04 | 2019-11-27 | 富士フイルム株式会社 | 画像表示装置 |
US10324662B2 (en) * | 2017-08-28 | 2019-06-18 | International Business Machines Corporation | Rebalancing of the first extents of logical volumes among a plurality of ranks |
CN110933701B (zh) * | 2019-12-12 | 2022-07-26 | 新华三大数据技术有限公司 | 网络负载状态检测方法及装置 |
CN111193788A (zh) * | 2019-12-24 | 2020-05-22 | 视联动力信息技术股份有限公司 | 一种音视频流负载均衡方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281106B1 (en) * | 2005-03-23 | 2007-10-09 | Emc Corporation | Method and apparatus for selective volume swapping in a data storage device based on merging multiple sets of candidate storage devices |
CN103095804A (zh) * | 2011-12-13 | 2013-05-08 | 微软公司 | 集群存储***中的负载平衡 |
CN103327094A (zh) * | 2013-06-19 | 2013-09-25 | 成都市欧冠信息技术有限责任公司 | 数据分布式存储方法与*** |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62235646A (ja) * | 1986-04-04 | 1987-10-15 | Nec Corp | 資源管理方式 |
US6965651B1 (en) * | 2001-05-11 | 2005-11-15 | Micrel, Inc. | Method and apparatus for delay adjustment and channel reordering in baseband communication receiving system |
JP2005209055A (ja) * | 2004-01-26 | 2005-08-04 | Hitachi Ltd | ストレージの負荷分散方法 |
US7457930B2 (en) * | 2004-11-19 | 2008-11-25 | International Business Machines Corporation | Method for application transparent autonomic data replication improving access performance for a storage area network aware file system |
US7281105B1 (en) * | 2005-03-23 | 2007-10-09 | Emc Corporation | Method and apparatus for selecting data storage devices for participating in logical volume exchange process based on aggregated workload statistics |
US9632872B2 (en) * | 2012-06-05 | 2017-04-25 | International Business Machines Corporation | Reprioritizing pending dispersed storage network requests |
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US8375180B2 (en) * | 2010-02-05 | 2013-02-12 | International Business Machines Corporation | Storage application performance matching |
US9606867B2 (en) * | 2014-06-05 | 2017-03-28 | International Business Machines Corporation | Maintaining data storage in accordance with an access metric |
US8861727B2 (en) * | 2010-05-19 | 2014-10-14 | Cleversafe, Inc. | Storage of sensitive data in a dispersed storage network |
US8930746B1 (en) * | 2012-06-30 | 2015-01-06 | Emc Corporation | System and method for LUN adjustment |
US8949483B1 (en) * | 2012-12-28 | 2015-02-03 | Emc Corporation | Techniques using I/O classifications in connection with determining data movements |
JP2014186364A (ja) * | 2013-03-21 | 2014-10-02 | Kddi Corp | 分散システム |
JP6209863B2 (ja) * | 2013-05-27 | 2017-10-11 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム |
-
2015
- 2015-07-29 CN CN201510456585.2A patent/CN106713377B/zh active Active
-
2016
- 2016-07-28 KR KR1020187000181A patent/KR102047900B1/ko active IP Right Grant
- 2016-07-28 EP EP16829864.4A patent/EP3331218B1/en active Active
- 2016-07-28 WO PCT/CN2016/092005 patent/WO2017016499A1/zh active Application Filing
- 2016-07-28 JP JP2018522846A patent/JP6615342B2/ja active Active
- 2016-07-28 CA CA2990753A patent/CA2990753A1/en not_active Abandoned
- 2016-07-28 AU AU2016299084A patent/AU2016299084A1/en not_active Abandoned
-
2017
- 2017-12-06 US US15/833,147 patent/US10554737B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281106B1 (en) * | 2005-03-23 | 2007-10-09 | Emc Corporation | Method and apparatus for selective volume swapping in a data storage device based on merging multiple sets of candidate storage devices |
CN103095804A (zh) * | 2011-12-13 | 2013-05-08 | 微软公司 | 集群存储***中的负载平衡 |
CN103327094A (zh) * | 2013-06-19 | 2013-09-25 | 成都市欧冠信息技术有限责任公司 | 数据分布式存储方法与*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360067A (zh) * | 2017-06-29 | 2017-11-17 | 青岛恒金源电子科技有限公司 | 一种智能家居***中的网络负载均衡方法 |
CN107360067B (zh) * | 2017-06-29 | 2021-08-10 | 青岛恒金源电子科技有限公司 | 一种智能家居***中的网络负载均衡方法 |
CN108600341A (zh) * | 2018-04-09 | 2018-09-28 | 广州悦世界信息科技有限公司 | 一种业务节点分配方法、决策节点及服务器集群 |
CN117271138A (zh) * | 2023-10-27 | 2023-12-22 | 山东三木众合信息科技股份有限公司 | 一种基于数据中心的数据处理方法及*** |
CN117271138B (zh) * | 2023-10-27 | 2024-03-01 | 山东三木众合信息科技股份有限公司 | 一种基于数据中心的数据处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
JP2018521439A (ja) | 2018-08-02 |
KR20180016479A (ko) | 2018-02-14 |
KR102047900B1 (ko) | 2019-12-04 |
US10554737B2 (en) | 2020-02-04 |
AU2016299084A1 (en) | 2018-01-18 |
EP3331218A4 (en) | 2018-07-04 |
CA2990753A1 (en) | 2017-02-02 |
US20180097875A1 (en) | 2018-04-05 |
WO2017016499A1 (zh) | 2017-02-02 |
EP3331218B1 (en) | 2022-04-20 |
JP6615342B2 (ja) | 2019-12-04 |
CN106713377B (zh) | 2019-09-13 |
EP3331218A1 (en) | 2018-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106713377A (zh) | 分布式数据库负载调平的方法和装置 | |
CN105242983B (zh) | 一种数据存储方法以及一种数据存储管理服务器 | |
CN108055264A (zh) | 推流服务器的调度装置、方法及计算机可读存储介质 | |
CN106126407A (zh) | 一种针对分布式存储***的性能监控调优***及方法 | |
CN111753016B (zh) | 数据处理方法、装置、***及计算机可读存储介质 | |
CN107766159A (zh) | 一种元数据管理方法、装置和计算机可读存储介质 | |
CN109815267A (zh) | 数据建模中特征的分箱优化方法及***、存储介质及终端 | |
CN110149394A (zh) | ***资源的调度方法、装置和存储介质 | |
CN110309230A (zh) | 基于区块链的区块生成方法、装置、设备及存储介质 | |
CN109685092A (zh) | 基于大数据的聚类方法、设备、存储介质及装置 | |
CN111541628A (zh) | 一种电力通信网络业务资源分配方法及相关装置 | |
CN107729514A (zh) | 一种基于hadoop的副本放置节点确定方法及装置 | |
CN106817314A (zh) | 大数据采集方法、装置以及*** | |
CN103258389B (zh) | 自助终端上传文件的方法、***和自助终端 | |
CN104123329B (zh) | 搜索方法和装置 | |
CN110297959A (zh) | 数据存储方法、装置、存储介质及边缘服务器 | |
CN109670932A (zh) | 信贷数据核算方法、装置、***和计算机存储介质 | |
CN108389079A (zh) | 计费策略的制定与查询方法、装置、终端及可读存储介质 | |
CN105049475B (zh) | 大规模社区的数据高效存储优化方法及*** | |
CN106874108A (zh) | 移动云计算中最小化微云使用个数技术 | |
EP2919504B1 (en) | Method and device for judging user repeatedly accessing network | |
US11736562B1 (en) | Method and system for achieving high availability of service under high-load scene in distributed system | |
CN113010310B (zh) | 作业数据的处理方法、装置和服务器 | |
CN107103475A (zh) | 基于大数据的计费通道效率排序方法及*** | |
CN106331039A (zh) | 一种用于数据中心网络中内容连通的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210926 Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |