CN103593347B - 一种均衡负载的方法及分布式数据库*** - Google Patents

一种均衡负载的方法及分布式数据库*** Download PDF

Info

Publication number
CN103593347B
CN103593347B CN201210288434.7A CN201210288434A CN103593347B CN 103593347 B CN103593347 B CN 103593347B CN 201210288434 A CN201210288434 A CN 201210288434A CN 103593347 B CN103593347 B CN 103593347B
Authority
CN
China
Prior art keywords
node
file
moving
migration
server node
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.)
Active
Application number
CN201210288434.7A
Other languages
English (en)
Other versions
CN103593347A (zh
Inventor
白涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201210288434.7A priority Critical patent/CN103593347B/zh
Publication of CN103593347A publication Critical patent/CN103593347A/zh
Application granted granted Critical
Publication of CN103593347B publication Critical patent/CN103593347B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种均衡负载的方法,包括:服务器节点实时将当前存储的数据添加到迁移单元文件,并根据迁移单元文件建立迁移单元文件统计表;主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表;主控服务器节点根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;主控服务器节点确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载。本发明还同时公开了一种分布式数据库***,采用本发明能根据各个服务器节点的负载情况,均衡分布式数据库的负载。

Description

一种均衡负载的方法及分布式数据库***
技术领域
本发明涉及计算机领域的数据库管理技术,尤其涉及一种均衡负载的方法及分布式数据库***。
背景技术
分布式数据库能够在不中断业务的情况下,通过动态增加计算节点和存储节点,线性地提升整体性能和存储容量,并且可通过***的节点间多副本技术保证数据的安全性。所述分布式数据库由多台服务器节点组成,数据被分布在多台服务器节点上;每个服务器节点中的中央处理器(CPU,Central Processing Unit)和硬盘同步处理数据。分布式数据库存储数据的方法为:客户端通过一致性算法,选定一台服务器节点后,将数据发送给该服务器节点保存。
但是,由于上述保存数据的服务器节点的选定方式为客户端通过一致性算法,比如哈希(Hash)算法来选定服务器节点,然而客户端在使用一致性算法选择服务器时,无法判断每个服务器中已存数据的情况,如此可能出现分布式数据库***负载不均衡的问题,进而影响***的存储业务。比如,服务器节点A中存储的数据接近该服务器磁盘容量的100%,而服务器节点B中保存的数据占用不到10%的磁盘容量,但客户端根据一致性算法选定服务器节点A来存储数据,这样就可能会出现服务器节点A无法存储数据的情况。
可见,现有技术中由于存储数据时,没有考虑当前***中各个服务器节点的负载情况,导致分布式数据库出现负载不均衡问题。
发明内容
有鉴于此,本发明的目的在于提供一种均衡负载的方法及分布式数据库***,能根据各个服务器节点的负载情况,均衡分布式数据库的负载。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种均衡负载的方法,该方法包括:
服务器节点实时将当前存储的数据添加到迁移单元文件,并根据迁移单元文件建立迁移单元文件统计表;
主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表;
主控服务器节点根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;
主控服务器节点确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载。
上述方案中,所述迁移单元文件统计表,包括:服务器节点的标识、磁盘总容量及磁盘已用容量,服务器节点中保存的所有迁移单元文件信息,每个迁移单元文件占用的磁盘容量和每个迁移单元文件的访问频度。
上述方案中,所述迁移策略,包括:以下一条或多条策略:
选出磁盘已用容量超过阀值的迁移单元文件统计表,将选出的迁移单元文件统计表对应的服务器节点作为迁出节点;从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件;从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点;
计算磁盘已用容量最多的服务器节点和磁盘已用容量最少的服务器节点之间的差值,当该差值大于预置值时,将磁盘已用容量最多的服务器节点作为迁出节点,从对应的迁移单元文件统计表中,选定迁移单元文件作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
根据迁移单元文件统计表,选出磁盘已用容量低于阀值的迁移单元文件统计表对应的服务器节点作为迁入节点,从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定迁移单元文件作为迁出文件。
上述方案中,所述主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表之前,该方法还包括:主控服务器节点实时检测所有服务器节点的状态,若有服务器节点的状态为准备退出,则将该服务器节点作为迁出节点,将该迁出节点中的所有迁移单元文件均作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点。
上述方案中,所述根据迁移决策,调整迁出节点及迁入节点的负载,包括:主控服务器根据选出的迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点,分别给对应的迁出节点发送向迁入节点发送迁出文件的通知;
迁出节点根据发送迁出文件的通知,提取迁出文件发送给迁入节点;
当主控服务器节点收到迁出节点返回迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点处理收到的迁出文件;
当主控服务器节点收到迁入节点返回完成迁入的通知后,更新自身的迁移单元文件统计表。
本发明还提供了一种分布式数据库***,该***包括:主控服务器节点和服务器节点;其中,
服务器节点,用于实时将当前存储的数据添加到迁移单元文件,根据迁移单元文件建立迁移单元文件统计表,并为主控服务器节点提供迁移单元文件统计表,以及作为迁入节点或迁出节点接收主控服务器节点对负载的调整;
主控服务器节点,用于周期性获取各个服务器节点的迁移单元文件统计表;根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;以及确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载。
上述方案中,所述服务器节点,具体用于利用服务器节点的标识、磁盘总容量及磁盘已用容量,服务器节点中保存的所有迁移单元文件信息,每个迁移单元文件占用的磁盘容量和每个迁移单元文件的访问频度建立迁移单元文件统计表。
上述方案中,所述主控服务器节点,具体用于保存迁移策略,所述迁移策略包括以下一条或多条策略:
选出磁盘已用容量超过阀值的迁移单元文件统计表,将选出的迁移单元文件统计表对应的服务器节点作为迁出节点;从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件;从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点;
计算磁盘已用容量最多的服务器节点和磁盘已用容量最少的服务器节点之间的差值,当该差值大于预置值时,将磁盘已用容量最多的服务器节点作为迁出节点,从对应的迁移单元文件统计表中,选定迁移单元文件作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
根据迁移单元文件统计表,选出磁盘已用容量低于阀值的迁移单元文件统计表对应的服务器节点作为迁入节点,从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定迁移单元文件作为迁出文件
上述方案中,所述主控服务器节点,还用于实时检测所有服务器节点的状态,若有服务器节点的状态为准备退出,则将该服务器节点作为迁出节点,将该迁出节点中的所有迁移单元文件均作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
相应的,所述服务器节点,还用于为主控服务器节点提供自身的状态为准备退出还是正常运行。
上述方案中,所述主控服务器节点,具体用于根据选出的迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点,分别给对应的迁出节点发送向作为迁入节点的服务器节点发送迁出文件的通知;当收到作为迁入节点的服务器节点返回迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点处理收到的迁出文件;当收到作为迁入节点的服务器节点返回完成迁入的通知后,更新自身的迁移单元文件统计表;
相应的,所述服务器节点,具体用于作为迁出节点时,根据主控服务器节点发送迁出文件的通知,提取迁出文件发送给迁入节点,向主控服务器节点返回迁出成功的通知;以及作为迁入节点时,完成迁入后,向主控服务器节点返回完成迁入的通知。
本发明所提供的均衡负载的方法及分布式数据库***,能由主控服务器节点周期性的根据所有服务器节点建立的迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;再根据迁移决策调整迁出节点和迁入节点的负载。如此,即可根据分布式数据库***中各个服务器节点的存储数据的情况,调整各个服务器节点的负载,进而实现分布式数据库的负载均衡。
附图说明
图1为本发明的均衡负载的方法流程示意图;
图2为本发明的分布式数据库***组成结构示意图。
具体实施方式
本发明的基本思想是:各个服务器节点实时将当前存储的数据添加到迁移单元文件,并根据迁移单元文件建立迁移单元文件统计表;主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表;主控服务器节点根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;主控服务器节点确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载。
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明提出的均衡负载的方法,如图1所示,包括以下步骤:
步骤101:各个服务器节点实时将当前存储的数据添加到迁移单元文件,并根据迁移单元文件建立迁移单元文件统计表。
这里,所述将当前存储的数据添加到迁移单元文件为:服务器节点实时检测是否接收到客户端发来的数据,若收到,则服务器节点检测当前迁移单元文件是否超过最大记录阈值,若超过,则停止更新当前迁移单元文件,新建迁移单元文件作为当前迁移单元文件,将数据存储到当前迁移单元文件中;若没超过,则服务器节点将数据直接存储到当前迁移单元文件中。其中,所述最大记录阈值为根据实际情况预置的数值,可以为迁移单元文件中记录的数据的最大数量,也可以为迁移单元文件中保存的数据所占用的最大磁盘容量。
步骤102:主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表。
这里,所述迁移单元文件统计表包括:服务器节点的标识、磁盘总容量及磁盘已用容量,服务器节点中保存的所有迁移单元文件信息,每个迁移单元文件占用的磁盘容量、和每个迁移单元文件的访问频度;
其中,所述服务器节点的标识可以为服务器节点在***中的地址;
所述迁移单元文件信息包括:迁移单元文件数量、文件名,所述文件名可以由服务器节点的标识和/或该迁移单元文件的建立次序组成;所述周期性为根据实际情况设置的时长,比如,可以设置为一天;所述获取可以为各个服务器节点周期性向主控服务器上报迁移单元文件统计表,也可以为主控服务器周期性从自身管理的各个服务器节点中提取迁移单元文件统计信息。
步骤103:主控服务器节点根据所有迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策。
这里,所述迁移策略为根据实际情况预置在主控服务器中的以下一条或多条策略:
一、选出磁盘已用容量超过阀值的迁移单元文件统计表,将选出的迁移单元文件统计表对应的服务器节点作为迁出节点;从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件;从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点;
其中,所述从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件可以根据实际情况设置选定规则,比如,可以设置选定规则为:计算磁盘已用容量与阈值之间的差值,将迁移单元文件占用的磁盘容量之和、与差值一致的一个或多个迁移单元文件作为迁出文件;所述阀值可以根据实际情况设置,比如可以设置为磁盘总容量的90%;
所述从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点可以为:根据当前所有服务器节点的已用磁盘容量,计算平均已用磁盘容量,从剩余迁移单元文件统计表对应的服务器节点中,选出已用磁盘容量低于平均已用磁盘容量的服务器节点作为迁入节点,计算迁入节点的已用磁盘容量与平均已用磁盘容量之间的差值,从所有迁出文件中选出占用的磁盘容量之和与所述差值相同的一个或多个迁出文件与该迁入节点对应。
二、计算磁盘已用容量最多的服务器节点和磁盘已用容量最少的服务器节点之间的差值,当该差值大于预置值时,将磁盘已用容量最多的服务器节点作为迁出节点,从对应的迁移单元文件统计表中,选定一个或多个迁移单元文件作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
其中,所述预置值可以为比例值,差值与磁盘已用容量最多的服务器节点对应的磁盘总容量的比值。
三、根据迁移单元文件统计表,选出磁盘已用容量低于阀值的迁移单元文件统计表对应的服务器节点作为迁入节点,从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定一个或多个迁移单元文件作为迁出文件;
其中,所述从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定一个或多个迁移单元文件作为迁出文件可以根据实际情况设置,比如,可以为:根据当前所有服务器节点的已用磁盘容量,计算出平均已用磁盘容量,从剩余服务器节点中,选出已用磁盘容量高于平均已用磁盘容量的服务器节点作为迁出节点,按照迁出节点的已用磁盘容量与平均已用磁盘容量之间的差值,选出一个或多个迁出文件。
步骤104:主控服务器节点确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载。
这里,所述确定迁移可以由人工执行迁移命令,或主控服务器节点设置为首先检测是否已选出迁出节点和迁入节点,若是,则确定迁移,若否,则结束处理流程;
所述根据迁移决策,调整迁出节点及迁入节点的负载包括:
步骤a:主控制服务器锁定当前自身保存的所有迁移单元文件统计表,并通知选出的所有迁出节点和迁入节点锁定自身的迁移单元文件统计表;主控服务器根据选出的迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点,分别给对应的迁出节点发送向迁入节点发送迁出文件的通知。
其中,所述锁定为停止任何对迁移单元文件统计表的操作。
步骤b:迁出节点根据发送迁出文件的通知,提取迁出文件发送给迁入节点,并更新自身的迁移单元文件统计表。
其中,所述发送方式可以采用文件传输协议(FTP,File Transfer Protocol)进行传递;所述提取迁出文件发送给迁入节点可以为提取迁出文件并压缩,将压缩后的迁出文件发送给迁入节点;所述压缩为现有技术,这里不做赘述。
进一步的,所述提取迁出文件发送给迁入节点之后,主控服务器节点还会实时监测压缩文件是否失败以及网络传输是否异常,若压缩文件失败或网络传输异常,则判断是否可以恢复,如果可以恢复,则判断当前重复执行次数是否超过最大值,若是,则结束处理流程,若不是,则提取迁出文件发送给迁入节点,并将重复执行次数加一;如果不可以恢复,则迁移操作失败,记入***异常日志,结束处理流程;若压缩文件成功或网络传输正常,则执行步骤c。
步骤c:当主控服务器节点收到任意一个迁出节点返回迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点,处理收到的迁出文件。
其中,所述迁出节点返回迁出成功的通知之前,还包括:所述迁出节点收到数据迁移开始的通知后,将执行数据迁移的会话实例的识别号通知主控服务器节点;所述主控服务器收到包含会话识别号的消息后,周期性的向迁出节点发送心跳消息;所述迁出节点收到心跳消息后,检测指定会话识别号的会话是否在运行,若是,则继续回应心跳消息给主控服务器节点,如果超过预置时长检测不到心跳,则判定数据迁移操作失败,通知主控制节点迁出失败。
所述会话识别号可以为当前的迁移操作顺序编号;所述心跳消息的发送与回应均为现有技术中对***设备进行管理时采用的方法,这里不做赘述。
所述主控服务器节点收到任意一个迁出节点返回迁出成功的通知包括:主控服务器节点实时检测是否收到迁出节点返回迁出成功的通知,当接收到迁出节点返回的迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点处理收到的迁出文件;当接收到迁出节点返回的迁出失败的通知时,结束该迁出节点对应的迁移处理。
所述处理收到的迁出文件为:迁入节点保存迁出节点发来的迁出文件,更新自身的迁移单元文件统计表,并向主控服务器节点返回完成迁入的通知。其中,所述保存迁出文件可以包括:将接收到的压缩后的迁出文件解压缩后进行保存;所述解压缩为与压缩方法对应的方法,为现有技术,这里不做赘述。
步骤d:当主控服务器节点收到任意一个迁入节点返回完成迁入的通知后,更新自身的迁移单元文件统计表。
其中,所述更新为将迁出文件对应的记录进行更改。
另外,执行上述步骤101之前,该方法还可以包括:主控服务器节点实时检测所有服务器节点的状态,若有任意一个服务器节点的状态为准备退出,则将该服务器节点作为迁出节点,将该迁出节点中的所有迁移单元文件均作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点。
其中,所述从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点可以为:根据当前所有剩余服务器节点的已用磁盘容量,计算出平均已用磁盘容量,选出已用磁盘容量低于平均已用磁盘容量的服务器节点作为迁入节点,按照迁入节点的已用磁盘容量与平均已用磁盘容量之间的差值,逐个选出的一个或多个迁出文件对应的迁入节点。
如图2所示,本发明提供了一种分布式数据库***,该***包括:主控服务器节点21和服务器节点22;其中,
服务器节点22,用于实时将当前存储的数据添加到迁移单元文件,根据迁移单元文件建立迁移单元文件统计表,并为主控服务器节点21提供迁移单元文件统计表,以及作为迁入节点或迁出节点接收主控服务器节点21对负载的调整;
主控服务器节点21,用于周期性获取各个服务器节点22的迁移单元文件统计表;根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;以及确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载。
所述服务器节点22,具体用于实时检测是否接收到客户端发来的数据,若收到,则检测当前迁移单元文件是否超过最大记录阈值,若超过,则停止更新当前迁移单元文件,新建迁移单元文件作为当前迁移单元文件,将数据存储到当前迁移单元文件中;若没超过,则将数据直接存储到当前迁移单元文件中。
所述服务器节点22,具体用于保存迁移单元文件统计表包括:服务器节点的标识、磁盘总容量及磁盘已用容量,服务器节点中保存的所有迁移单元文件信息,每个迁移单元文件占用的磁盘容量、和每个迁移单元文件的访问频度。
所述主控服务器节点21,具体用于保存迁移策略;所述迁移策略为根据实际情况预置的以下一条或多条策略:
一、选出磁盘已用容量超过阀值的迁移单元文件统计表,将选出的迁移单元文件统计表对应的服务器节点作为迁出节点;从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件;从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点;
其中,所述从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件可以根据实际情况设置选定规则,比如,可以设置选定规则为:计算磁盘已用容量与阈值之间的差值,将迁移单元文件占用的磁盘容量之和、与差值一致的一个或多个迁移单元文件作为迁出文件;所述阀值可以根据实际情况设置,比如可以设置为磁盘总容量的90%;
所述从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点可以为:根据当前所有服务器节点的已用磁盘容量,计算平均已用磁盘容量,从剩余迁移单元文件统计表对应的服务器节点中,选出已用磁盘容量低于平均已用磁盘容量的服务器节点作为迁入节点,计算迁入节点的已用磁盘容量与平均已用磁盘容量之间的差值,从所有迁出文件中选出占用的磁盘容量之和与所述差值相同的一个或多个迁出文件与该迁入节点对应。
二、计算磁盘已用容量最多的服务器节点和磁盘已用容量最少的服务器节点之间的差值,当该差值大于预置值时,将磁盘已用容量最多的服务器节点作为迁出节点,从对应的迁移单元文件统计表中,选定一个或多个迁移单元文件作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
其中,所述预置值可以为比例值,差值与磁盘已用容量最多的服务器节点对应的磁盘总容量的比值。
三、根据迁移单元文件统计表,选出磁盘已用容量低于阀值的迁移单元文件统计表对应的服务器节点作为迁入节点,从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定一个或多个迁移单元文件作为迁出文件;
其中,所述从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定一个或多个迁移单元文件作为迁出文件可以根据实际情况设置,比如,可以为:根据当前所有服务器节点的已用磁盘容量,计算出平均已用磁盘容量,从剩余服务器节点中,选出已用磁盘容量高于平均已用磁盘容量的服务器节点作为迁出节点,按照迁出节点的已用磁盘容量与平均已用磁盘容量之间的差值,选出一个或多个迁出文件。
所述主控服务器节点21,具体用于由人工执行迁移命令来确定开始迁移,或设置为首先检测是否已选出迁出节点和迁入节点,若是,则确定迁移,若否,则结束处理流程。
所述主控服务器节点21,具体用于锁定当前自身保存的所有迁移单元文件统计表,并通知选出的所有迁出节点和迁入节点锁定自身的迁移单元文件统计表,主控服务器根据选出的迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点,分别给对应的迁出节点发送向迁入节点发送迁出文件的通知。
所述服务器节点22,具体用于作为迁出节点时,根据发送迁出文件的通知,提取迁出文件发送给迁入节点,并更新自身的迁移单元文件统计表。
所述服务器节点22,具体用于提取迁出文件并压缩,将压缩后的迁出文件发送给迁入节点。
所述主控服务器节点21,具体用于实时监测作为迁出节点的服务器节点22压缩文件是否失败以及网络传输是否异常,若压缩文件失败或网络传输异常,则判断是否可以恢复,如果可以恢复,则判断当前重复执行次数是否超过最大值,若是,则结束处理流程,若不是,则提取迁出文件发送给迁入节点,并将重复执行次数加一;如果不可以恢复,则迁移操作失败,记入***异常日志,结束处理流程。
所述服务器节点22,还用于作为迁出节点时,收到数据迁移开始的通知后,将执行数据迁移的会话实例的识别号通知主控模块,以及接收主控服务器节点21发来的心跳消息后,检测心跳消息对应的会话识别号的会话是否在运行,若是,则继续回应消息给主控服务器节点21,如果超过预置时长检测不到心跳,则判定数据迁移操作失败,通知主控服务器节点21迁出失败;相应的,所述主控服务器节点21,还用于收到服务器节点22发来的包含会话识别号的消息后,周期性的向作为迁出节点的服务器节点22发送心跳消息。
所述主控服务器节点21,具体用于实时检测是否收到迁出节点返回迁出成功的通知,当接收到迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点处理收到的迁出文件,当接收到迁出节点返回的迁出失败的通知时,结束该迁出节点对应的迁移处理。
所述服务器节点22,具体用于作为迁入节点时,保存迁出节点发来的迁出文件,更新自身的迁移单元文件统计表,并向主控服务器节点21返回完成迁入的通知。
所述服务器节点22,具体用于作为迁入节点时,将接收到的压缩后的迁出文件解压缩后进行保存;所述解压缩为与压缩方法对应的方法,为现有技术,这里不做赘述。
所述主控服务器节点21,还用于实时检测服务器节点22的状态,若有服务器节点22的状态为准备退出,则将该服务器节点22作为迁出节点,将该迁出节点中的所有迁移单元文件均作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点22中,为各个迁出文件选出迁入节点;相应的,所述服务器节点22,还用于为主控服务器节点21提供自身的状态为准备退出还是正常运行。
所述主控服务器节点21,具体用于根据当前所有剩余服务器节点22的已用磁盘容量,计算出平均已用磁盘容量,选出已用磁盘容量低于平均已用磁盘容量的服务器节点22作为迁入节点,按照迁入节点的已用磁盘容量与平均已用磁盘容量之间的差值,逐个选出一个或多个迁出文件对应的迁入节点。
上述***中的主控服务器节点21和服务器节点22除具备本发明提供的功能外,均具有现有技术中规定的分布式数据库中的节点设备应具备的所有功能,这里不做赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (8)

1.一种均衡负载的方法,其特征在于,该方法包括:
服务器节点实时将当前存储的数据添加到迁移单元文件,并根据迁移单元文件建立迁移单元文件统计表;
主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表;
主控服务器节点根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;
主控服务器节点确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载;
其中,所述迁移策略,包括:以下一条或多条策略:
选出磁盘已用容量超过阈值的迁移单元文件统计表,将选出的迁移单元文件统计表对应的服务器节点作为迁出节点;从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件;从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点;
计算磁盘已用容量最多的服务器节点和磁盘已用容量最少的服务器节点之间的差值,当该差值大于预置值时,将磁盘已用容量最多的服务器节点作为迁出节点,从对应的迁移单元文件统计表中,选定迁移单元文件作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
根据迁移单元文件统计表,选出磁盘已用容量低于阈值的迁移单元文件统计表对应的服务器节点作为迁入节点,从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定迁移单元文件作为迁出文件。
2.根据权利要求1所述的方法,其特征在于,所述迁移单元文件统计表,包括:服务器节点的标识、磁盘总容量及磁盘已用容量,服务器节点中保存的所有迁移单元文件信息,每个迁移单元文件占用的磁盘容量和每个迁移单元文件的访问频度。
3.根据权利要求1所述的方法,其特征在于,所述主控服务器节点周期性获取各个服务器节点的迁移单元文件统计表之前,该方法还包括:主控服务器节点实时检测所有服务器节点的状态,若有服务器节点的状态为准备退出,则将该服务器节点作为迁出节点,将该迁出节点中的所有迁移单元文件均作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点。
4.根据权利要求1所述的方法,其特征在于,所述根据迁移决策,调整迁出节点及迁入节点的负载,包括:主控服务器根据选出的迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点,分别给对应的迁出节点发送向迁入节点发送迁出文件的通知;
迁出节点根据发送迁出文件的通知,提取迁出文件发送给迁入节点;
当主控服务器节点收到迁出节点返回迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点处理收到的迁出文件;
当主控服务器节点收到迁入节点返回完成迁入的通知后,更新自身的迁移单元文件统计表。
5.一种分布式数据库***,其特征在于,该***包括:主控服务器节点和服务器节点;其中,
服务器节点,用于实时将当前存储的数据添加到迁移单元文件,根据迁移单元文件建立迁移单元文件统计表,并为主控服务器节点提供迁移单元文件统计表,以及作为迁入节点或迁出节点接收主控服务器节点对负载的调整;
主控服务器节点,用于周期性获取各个服务器节点的迁移单元文件统计表;根据迁移单元文件统计表及迁移策略,选定迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点作为迁移决策;以及确定迁移时,根据迁移决策,调整迁出节点及迁入节点的负载;
其中,所述主控服务器节点,具体用于保存迁移策略,所述迁移策略包括以下一条或多条策略:
选出磁盘已用容量超过阈值的迁移单元文件统计表,将选出的迁移单元文件统计表对应的服务器节点作为迁出节点;从选出的迁移单元文件统计表中,选定迁出节点中的迁移单元文件作为迁出文件;从剩余迁移单元文件统计表对应的服务器节点中,选出各个迁出文件对应的迁入节点;
计算磁盘已用容量最多的服务器节点和磁盘已用容量最少的服务器节点之间的差值,当该差值大于预置值时,将磁盘已用容量最多的服务器节点作为迁出节点,从对应的迁移单元文件统计表中,选定迁移单元文件作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
根据迁移单元文件统计表,选出磁盘已用容量低于阈值的迁移单元文件统计表对应的服务器节点作为迁入节点,从剩余迁移单元文件统计表对应的服务器节点中选定迁出节点,并选定迁移单元文件作为迁出文件。
6.根据权利要求5所述的***,其特征在于,所述服务器节点,具体用于利用服务器节点的标识、磁盘总容量及磁盘已用容量,服务器节点中保存的所有迁移单元文件信息,每个迁移单元文件占用的磁盘容量和每个迁移单元文件的访问频度建立迁移单元文件统计表。
7.根据权利要求5所述的***,其特征在于,
所述主控服务器节点,还用于实时检测所有服务器节点的状态,若有服务器节点的状态为准备退出,则将该服务器节点作为迁出节点,将该迁出节点中的所有迁移单元文件均作为迁出文件,从剩余迁移单元文件统计表对应的服务器节点中,为各个迁出文件选出迁入节点;
相应的,所述服务器节点,还用于为主控服务器节点提供自身的状态为准备退出还是正常运行。
8.根据权利要求5所述的***,其特征在于,
所述主控服务器节点,具体用于根据选出的迁出节点、迁出节点的迁出文件、以及迁出文件对应的迁入节点,分别给对应的迁出节点发送向作为迁入节点的服务器节点发送迁出文件的通知;当收到作为迁入节点的服务器节点返回迁出成功的通知时,通知该迁出节点的迁出文件对应的所有迁入节点处理收到的迁出文件;当收到作为迁入节点的服务器节点返回完成迁入的通知后,更新自身的迁移单元文件统计表;
相应的,所述服务器节点,具体用于作为迁出节点时,根据主控服务器节点发送迁出文件的通知,提取迁出文件发送给迁入节点,向主控服务器节点返回迁出成功的通知;以及作为迁入节点时,完成迁入后,向主控服务器节点返回完成迁入的通知。
CN201210288434.7A 2012-08-14 2012-08-14 一种均衡负载的方法及分布式数据库*** Active CN103593347B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210288434.7A CN103593347B (zh) 2012-08-14 2012-08-14 一种均衡负载的方法及分布式数据库***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210288434.7A CN103593347B (zh) 2012-08-14 2012-08-14 一种均衡负载的方法及分布式数据库***

Publications (2)

Publication Number Publication Date
CN103593347A CN103593347A (zh) 2014-02-19
CN103593347B true CN103593347B (zh) 2017-06-13

Family

ID=50083496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210288434.7A Active CN103593347B (zh) 2012-08-14 2012-08-14 一种均衡负载的方法及分布式数据库***

Country Status (1)

Country Link
CN (1) CN103593347B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488079A (zh) * 2014-10-11 2016-04-13 苏州精易会信息技术有限公司 处理多租户数据的方法
CN105049508A (zh) * 2015-07-21 2015-11-11 齐鲁工业大学 一种云数据迁移方法
CN106502576B (zh) * 2015-09-06 2020-06-23 中兴通讯股份有限公司 迁移策略调整方法及装置
CN105227645A (zh) * 2015-09-15 2016-01-06 齐鲁工业大学 一种云数据迁移方法
CN105245381B (zh) * 2015-10-22 2019-08-16 上海斐讯数据通信技术有限公司 云服务器宕机监控迁移***和方法
CN106294538B (zh) 2016-07-19 2019-07-16 浙江大华技术股份有限公司 一种从节点中的数据记录的迁移方法及装置
CN108781189B (zh) * 2016-09-26 2020-12-22 华为技术有限公司 一种负载均衡的方法及相关设备
CN111095233B (zh) 2017-09-28 2023-09-26 深圳清华大学研究院 混合文件***架构、文件存储、动态迁移及其应用
CN108710925A (zh) * 2018-05-15 2018-10-26 南京博内特信息科技有限公司 一种基于物联网的服装货架***的方法
EP3703342B1 (en) 2019-03-01 2023-07-26 ABB Schweiz AG Dynamic load balancing in network centric process control systems
CN110377430B (zh) * 2019-07-24 2021-08-31 中南民族大学 数据迁移方法、设备、存储介质及装置
CN111143324B (zh) * 2019-12-20 2023-05-02 浪潮软件股份有限公司 一种kudu的基于大小的数据库数据均衡***及实现方法
CN113268203B (zh) * 2021-05-18 2022-11-04 天津中科曙光存储科技有限公司 存储***的容量均衡方法、装置、计算机设备和存储介质
CN113821176B (zh) * 2021-09-29 2023-07-21 重庆紫光华山智安科技有限公司 一种数据迁移的处理方法、装置及存储介质
CN115016727A (zh) * 2022-04-27 2022-09-06 阿里云计算有限公司 数据转储方法以及装置
CN116389442A (zh) * 2023-02-10 2023-07-04 上海弘积信息科技有限公司 一种基于负载均衡的web页面请求***及方法
CN116991580A (zh) * 2023-07-27 2023-11-03 上海沄熹科技有限公司 一种分布式数据库***负载均衡的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582850A (zh) * 2009-06-19 2009-11-18 优万科技(北京)有限公司 一种实现负载均衡的方法和***
CN102457428A (zh) * 2010-10-27 2012-05-16 中兴通讯股份有限公司 分布式哈希表网络的负载均衡实现方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582850A (zh) * 2009-06-19 2009-11-18 优万科技(北京)有限公司 一种实现负载均衡的方法和***
CN102457428A (zh) * 2010-10-27 2012-05-16 中兴通讯股份有限公司 分布式哈希表网络的负载均衡实现方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
分布式文件***的动态负载均衡算法;张聪萍等;《小型微型计算机***》;20110731;第32卷(第7期);第1424-1426页 *

Also Published As

Publication number Publication date
CN103593347A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
CN103593347B (zh) 一种均衡负载的方法及分布式数据库***
CN107145393A (zh) 一种负载调整方法、设备及计算机可读存储介质
CN104852857B (zh) 基于负载均衡的分布式数据传输方法和***
CN102577241B (zh) 分布式缓存资源调度的方法、装置及***
CN109951537B (zh) 一种面向区块链的负载均衡分发方法
CN104487989B (zh) 自主网络哨兵
CN111131082A (zh) 一种充电设施数据传输动态控制方法及***
CN110381560B (zh) 适用于电力现场的无线传感器网络通信方法
CN107426003A (zh) 一种故障检测方法及装置
CN106953926A (zh) 一种路由方法及装置
CN107846457A (zh) 服务器集群的负载均衡方法、装置、存储介质和***
WO2019015856A1 (de) Überwachung einer blockchain
CN107360025A (zh) 一种分布式存储***集群监控方法及设备
CN104702647B (zh) 信息请求方法和***
CN111708629B (zh) 一种资源分配方法、装置、电子设备和存储介质
CN108712469A (zh) 一种物联网中的传感网络连接分配和调度方法
CN104202349A (zh) 分布式缓存资源调度的方法、装置及***
CN103888310B (zh) 监控处理方法及***
CN106603631A (zh) 分布式消息***及扩容方法
CN112436962A (zh) 区块链共识网络动态扩展方法、电子设备、***及介质
EP2988476B1 (en) Method and apparatus for processing operation on endpoint peripheral
CN104978344B (zh) 一种数据运算方法及装置
CN106550342A (zh) 计费请求消息的过载控制方法及装置
CN114071149A (zh) 分布式视频转码方法及相关装置
CN106331039A (zh) 一种用于数据中心网络中内容连通的实现方法

Legal Events

Date Code Title Description
C06 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