CN110377430B - 数据迁移方法、设备、存储介质及装置 - Google Patents
数据迁移方法、设备、存储介质及装置 Download PDFInfo
- Publication number
- CN110377430B CN110377430B CN201910674457.3A CN201910674457A CN110377430B CN 110377430 B CN110377430 B CN 110377430B CN 201910674457 A CN201910674457 A CN 201910674457A CN 110377430 B CN110377430 B CN 110377430B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- load
- migration
- processed
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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
-
- 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]
Abstract
本发明公开了一种数据迁移方法、设备、存储介质及装置,本发明在系统的负载均衡状态不满足预设条件时,从系统中选取若干第一节点和第二节点,组成待迁出节点集和待迁入节点集,基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点,基于平均迁移代价确定目标迁移节点,将待处理节点的数据迁移至目标迁移节点中,并将所述待处理节点从待迁出节点集中移出,在待迁出节点集中还存在第一节点时,重复执行所述基于各第一节点的负载量,从待迁出节点集中选出待处理节点的步骤,本发明基于平均迁移代价对迁移节点进行排序后再选取目标迁移节点,使整个系统的整体迁移代价变小,减少数据迁移时间,提升了系统的数据吞吐量。
Description
技术领域
本发明涉及分布式缓存技术领域,尤其涉及一种数据迁移方法、设备、存储介质及装置。
背景技术
Redis集群分布式缓存系统会将数据数据均衡分布到各个缓存节点中,但是在集群中缓存节点的个数发生变化时,集群中各缓存节点的数据负载的均衡状态被打破。为了使Redis集群重新达到一个均衡状态,各个缓存节点之间需要发生数据迁移操作。而当前Redis集群在发生数据迁移操作时,随机选取迁移对象的方式在集群参与数据迁移节点较多的情况下,迁移代价会很大。而在开销敏感数据迁移算法,在选取迁移对象时,首先会基于面积的迁移代价模型,计算出Redis集群中迁出节点往迁入节点迁移数据的代价,然后选取迁移对象时每次选取迁移代价最小的节点进行数据迁移,该算法虽然能够很好的降低数据迁移代价,但是该算法并没有考虑到迁出节点选择最小迁移代价节点发生数据迁移量的大小,在迁移数据量大的情况下,分布式缓存系统的迁移代价仍然很大。
发明内容
本发明的主要目的在于提供一种数据迁移方法、设备、存储介质及装置,旨在解决当前的分布式缓存系统中数据迁移过程时,迁移代价大的技术问题。
为实现上述目的,本发明提供一种数据迁移方法,所述方法包括以下步骤:
获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态;
在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集;
基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点;
基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出;
判断所述待迁出节点集中是否还存在所述第一节点;
在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤。
优选地,所述获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,具体包括:
获取分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中各节点的负载占比,基于各节点的负载占比确定所述分布式缓存系统的负载均衡状态。
优选地,通过以下公式确定所述分布式缓存系统的负载均衡状态:
其中,Pi表示所述分布式缓存系统中的i节点的负载占比。
优选地,所述在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,具体包括:
基于所述分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中所有节点的负载均量;
将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集。
优选地,所述将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集,具体包括:
获取所述分布式缓存系统中各节点的负载量与所述负载均量的差值;
将与所述负载均量的差值高于第一预设阈值的负载量对应的节点确定为所述第一节点,将与所述负载均量的差值低于第二预设阈值的负载量对应的节点确定为所述第二节点。
优选地,所述基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出之前,所述方法还包括:
通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价;
根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
优选地,所述基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出之后,所述方法还包括:
获取各第二节点的当前负载量;
将超出预设负载量的当前负载量对应的目标第二节点从所述待迁入节点集中移出。
此外,为实现上述目的,本发明还提供一种数据迁移设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如上文所述的数据迁移方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如上文所述数据迁移方法的步骤。
此外,为实现上述目的,本发明还提供一种数据迁移装置,所述数据迁移装置包括:
获取模块,用于获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态;
集合模块,用于在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集;
选取模块,用于基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点;
迁移模块,用于基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出;
判断模块,用于判断所述待迁出节点集中是否还存在所述第一节点;
循环模块,用于在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤。
在本发明中,通过获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点,基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出,判断所述待迁出节点集中是否还存在所述第一节点,在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤,本发明在选取迁移对象时,基于各缓存节点的平均迁移代价对迁移节点进行排序后再选取目标迁移节点,使整个分布式缓存系统的整体迁移代价变小,减少整个系统的数据迁移时间,提升了系统的数据吞吐量。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明数据迁移方法第一实施例的流程示意图;
图3为本发明数据迁移方法第二实施例的流程示意图;
图4为本发明数据迁移装置第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,所述设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储服务器。
本领域技术人员可以理解,图1中示出的结构并不构成对所述数据迁移设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作装置、网络通信模块、用户接口模块以及数据迁移程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述设备通过处理器1001调用存储器1005中存储的数据迁移程序,并执行本发明实施例提供的数据迁移方法。
所述设备通过处理器1001调用存储器1005中存储的数据迁移程序,并执行以下操作:
获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态;
在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集;
基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点;
基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出;
判断所述待迁出节点集中是否还存在所述第一节点;
在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤。
进一步地,处理器1001可以调用存储器1005中存储的数据迁移程序,还执行以下操作:
获取分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中各节点的负载占比,基于各节点的负载占比确定所述分布式缓存系统的负载均衡状态。
进一步地,处理器1001可以调用存储器1005中存储的数据迁移程序,还执行以下操作:
基于所述分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中所有节点的负载均量;
将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集。
进一步地,处理器1001可以调用存储器1005中存储的数据迁移程序,还执行以下操作:
获取所述分布式缓存系统中各节点的负载量与所述负载均量的差值;
将与所述负载均量的差值高于第一预设阈值的负载量对应的节点确定为所述第一节点,将与所述负载均量的差值低于第二预设阈值的负载量对应的节点确定为所述第二节点。
进一步地,处理器1001可以调用存储器1005中存储的数据迁移程序,还执行以下操作:
通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价;
根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
进一步地,处理器1001可以调用存储器1005中存储的数据迁移程序,还执行以下操作:
获取各第二节点的当前负载量;
将超出预设负载量的当前负载量对应的目标第二节点从所述待迁入节点集中移出。
在本实施例中,通过获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点,基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出,判断所述待迁出节点集中是否还存在所述第一节点,在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤,本发明在选取迁移对象时,基于各缓存节点的平均迁移代价对迁移节点进行排序后再选取目标迁移节点,使整个分布式缓存系统的整体迁移代价变小,减少整个系统的数据迁移时间,提升了系统的数据吞吐量。
基于上述硬件结构,提出本发明数据迁移方法的实施例。
参照图2,图2为本发明数据迁移方法第一实施例的流程示意图。
在第一实施例中,所述数据迁移方法包括以下步骤:
步骤S10:获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态。
可以理解的是,在进行数据迁移操作之前,需要考虑分布式缓存系统中各缓存节点的均衡状态,根据信息熵理论,可以基于分布式缓存系统中各节点的负载占比,对所述分布式缓存系统的负载均衡状态进行考察。
具体地,可以获取分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中各节点的负载占比,基于各节点的负载占比确定所述分布式缓存系统的负载均衡状态。
进一步地,可以通过以下公式(1)确定所述分布式缓存系统的负载均衡状态:
其中,Pi表示所述分布式缓存系统中的i节点的负载占比。
可以理解的是,某个节点的负载占比,即为该节点的负载量与整个分布式缓存系统中所有节点的负载总量的比值。
具体实现时,所述公式(1)计算出来的H值越大,则表明整个分布式缓存系统中各缓存节点负载就越均衡,分布式缓存系统就越稳定。
可以理解的是,所述H值达到最大时,即为lg(n),具体实现时,也可以通过H(P)与H(P)max的比值来表征所述分布式缓存系统的负载均衡状态。
步骤S20:在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集。
可以理解的是,所述“第一节点”中的“第一”和“第二节点”中的“第二”并不构成对节点的任何限制,只是用于对不同的节点进行区分。
在具体实现时,可以预先设置一个可以接受的H值的阈值,在计算出来的H值低于所述阈值时,认定所述分布式缓存系统的负载均衡状态不满足预设条件。
具体地,可以基于所述分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中所有节点的负载均量,将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集。
可以理解的是,所述待迁出节点集和待迁入节点集中的节点数目越多,后续的为第一节点确定目标迁移节点时,计算量越大,系统的数据迁移速度越慢,因此,在具体实现时,可以进一步地获取所述分布式缓存系统中各节点的负载量与所述负载均量的差值,将与所述负载均量的差值高于第一预设阈值的负载量对应的节点确定为所述第一节点,将与所述负载均量的差值低于第二预设阈值的负载量对应的节点确定为所述第二节点。
步骤S30:基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点。
具体地,可以基于各第一节点的负载量,对第一节点进行排序,从中选出负载量最大的节点作为所述待处理节点。
步骤S40:基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出。
可以理解的是,在以往进行数据迁移时,通过基于总迁移代价来进行迁移目标的选取,即总是选取总迁移代价最小的节点作为目标迁移节点,但是总的迁移代价最小,不代表单个数据的迁移代价也最小,本发明中,基于平均迁移代价来进行目标迁移节点的选取,可以保证整个系统中的第一节点在选取目标迁移节点时,迁移代价都是最小的,从而减少整个系统的迁移代价,需要说明的是,本发明方案在进行大量的数据迁移时,优势更加明显。
为了更容易理解,现特举例说明,比如,节点A为第一节点,节点D和节点F为第二节点,节点D可以接收18个待迁入数据,节点F可以接收15个待迁入数据,节点A和节点D之间的总迁移代价为22,节点A和节点F之间的总迁移代价为21,可以看出,节点A与节点D之间的总迁移代价大于节点A与节点F之间的总迁移代价,但是节点A与节点D之间的平均迁移代价小于节点A与节点F之间的平均迁移代价,因此,本方案中优先选择D作为目标迁移对象。
具体地,可以通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价,根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
需要说明的是,所述预设迁移开销模型包括迁移时间预测模型和性能衰减预测模型,通过所述迁移时间预测模型对所述分布式缓存系统的数据迁移时间进行预测,通过所述性能衰减模型对所述分布式缓存系统的性能衰减量进行预测,将预测得到的数据迁移时间与性能衰减量的乘积作为所述分布式缓存系统数据迁移的总迁移代价。
进一步地,在确定所述待处理节点与各第二节点之间的待迁移数据时,可以基于所述分布式缓存系统中各节点的负载均值,得到所述待处理节点待迁出的数据量,及各第二节点可以迁入的数据量,从而确定所述待处理节点与各第二节点之间的待迁移数据量。
步骤S50:判断所述待迁出节点集中是否还存在所述第一节点。
步骤S60:在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤。
可以理解的是,在不存在所述第一节点时,说明该分布式缓存系统中各节点的负载已经达到了一个比较均衡的状态,则可以结束相应的方法流程。
本实施例中,通过获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点,基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出,判断所述待迁出节点集中是否还存在所述第一节点,在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤,本发明在选取迁移对象时,基于各缓存节点的平均迁移代价对迁移节点进行排序后再选取目标迁移节点,使整个分布式缓存系统的整体迁移代价变小,减少整个系统的数据迁移时间,提升了系统的数据吞吐量。
参照图3,图3为本发明数据迁移方法第二实施例的流程示意图,基于上述图2所示的实施例,提出本发明数据迁移方法的第二实施例。
在第二实施例中,所述步骤S40之后,所述方法还包括:
步骤S70:获取各第二节点的当前负载量。
步骤S80:将超出预设负载量的当前负载量对应的目标第二节点从所述待迁入节点集中移出。
具体地,所述预设负载量可以为所述分布式缓存系统进行数据迁移之前,各节点的负载均量。
可以理解的是,随着所述分布式缓存系统中数据迁移的进行,所述待迁入节点集中的第二节点的数据负载量也在不断地增加,在所述第二节点的负载量达到一定量时,已经不适合再接收迁入的数据。
本实施例中,及时地将负载量超出预设负载量的第二节点从所述待迁入节点集中移出,可以避免向所述第二节点中迁移了过多的数据,使原本数据负载量较少的节点变成负载过量的节点,从而使分布式缓存系统的数据迁移的工作量变大的情况出现。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如下操作:
获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态;
在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集;
基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点;
基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出;
判断所述待迁出节点集中是否还存在所述第一节点;
在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤。
进一步地,所述数据迁移程序被处理器执行时还实现如下操作:
获取分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中各节点的负载占比,基于各节点的负载占比确定所述分布式缓存系统的负载均衡状态。
进一步地,所述数据迁移程序被处理器执行时还实现如下操作:
基于所述分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中所有节点的负载均量;
将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集。
进一步地,所述数据迁移程序被处理器执行时还实现如下操作:
获取所述分布式缓存系统中各节点的负载量与所述负载均量的差值;
将与所述负载均量的差值高于第一预设阈值的负载量对应的节点确定为所述第一节点,将与所述负载均量的差值低于第二预设阈值的负载量对应的节点确定为所述第二节点。
进一步地,所述数据迁移程序被处理器执行时还实现如下操作:
通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价;
根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
进一步地,所述数据迁移程序被处理器执行时还实现如下操作:
获取各第二节点的当前负载量;
将超出预设负载量的当前负载量对应的目标第二节点从所述待迁入节点集中移出。
在本实施例中,通过获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点,基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出,判断所述待迁出节点集中是否还存在所述第一节点,在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤,本发明在选取迁移对象时,基于各缓存节点的平均迁移代价对迁移节点进行排序后再选取目标迁移节点,使整个分布式缓存系统的整体迁移代价变小,减少整个系统的数据迁移时间,提升了系统的数据吞吐量。
参照图4,图4为本发明数据迁移装置第一实施例的功能模块图,基于所述数据迁移方法,提出本发明数据迁移装置的第一实施例。
在本实施例中,所述数据迁移装置包括:
获取模块10,用于获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态。
可以理解的是,在进行数据迁移操作之前,需要考虑分布式缓存系统中各缓存节点的均衡状态,根据信息熵理论,可以基于分布式缓存系统中各节点的负载占比,对所述分布式缓存系统的负载均衡状态进行考察。
具体地,可以获取分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中各节点的负载占比,基于各节点的负载占比确定所述分布式缓存系统的负载均衡状态。
进一步地,可以通过以下公式(1)确定所述分布式缓存系统的负载均衡状态:
其中,Pi表示所述分布式缓存系统中的i节点的负载占比。
可以理解的是,某个节点的负载占比,即为该节点的负载量与整个分布式缓存系统中所有节点的负载总量的比值。
具体实现时,所述公式(1)计算出来的H值越大,则表明整个分布式缓存系统中各缓存节点负载就越均衡,分布式缓存系统就越稳定。
可以理解的是,所述H值达到最大时,即为lg(n),具体实现时,也可以通过H(P)与H(P)max的比值来表征所述分布式缓存系统的负载均衡状态。
集合模块20,用于在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集。
可以理解的是,所述“第一节点”中的“第一”和“第二节点”中的“第二”并不构成对节点的任何限制,只是用于对不同的节点进行区分。
在具体实现时,可以预先设置一个可以接受的H值的阈值,在计算出来的H值低于所述阈值时,认定所述分布式缓存系统的负载均衡状态不满足预设条件。
具体地,可以基于所述分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中所有节点的负载均量,将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集。
可以理解的是,所述待迁出节点集和待迁入节点集中的节点数目越多,后续的为第一节点确定目标迁移节点时,计算量越大,系统的数据迁移速度越慢,因此,在具体实现时,可以进一步地获取所述分布式缓存系统中各节点的负载量与所述负载均量的差值,将与所述负载均量的差值高于第一预设阈值的负载量对应的节点确定为所述第一节点,将与所述负载均量的差值低于第二预设阈值的负载量对应的节点确定为所述第二节点。
选取模块30,用于基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点。
具体地,可以基于各第一节点的负载量,对第一节点进行排序,从中选出负载量最大的节点作为所述待处理节点。
迁移模块40,用于基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出。
可以理解的是,在以往进行数据迁移时,通过基于总迁移代价来进行迁移目标的选取,即总是选取总迁移代价最小的节点作为目标迁移节点,但是总的迁移代价最小,不代表单个数据的迁移代价也最小,本发明中,基于平均迁移代价来进行目标迁移节点的选取,可以保证整个系统中的第一节点在选取目标迁移节点时,迁移代价都是最小的,从而减少整个系统的迁移代价,需要说明的是,本发明方案在进行大量的数据迁移时,优势更加明显。
为了更容易理解,现特举例说明,比如,节点A为第一节点,节点D和节点F为第二节点,节点D可以接收18个待迁入数据,节点F可以接收15个待迁入数据,节点A和节点D之间的总迁移代价为22,节点A和节点F之间的总迁移代价为21,可以看出,节点A与节点D之间的总迁移代价大于节点A与节点F之间的总迁移代价,但是节点A与节点D之间的平均迁移代价小于节点A与节点F之间的平均迁移代价,因此,本方案中优先选择D作为目标迁移对象。
具体地,可以通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价,根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
需要说明的是,所述预设迁移开销模型包括迁移时间预测模型和性能衰减预测模型,通过所述迁移时间预测模型对所述分布式缓存系统的数据迁移时间进行预测,通过所述性能衰减模型对所述分布式缓存系统的性能衰减量进行预测,将预测得到的数据迁移时间与性能衰减量的乘积作为所述分布式缓存系统数据迁移的总迁移代价。
进一步地,在确定所述待处理节点与各第二节点之间的待迁移数据时,可以基于所述分布式缓存系统中各节点的负载均值,得到所述待处理节点待迁出的数据量,及各第二节点可以迁入的数据量,从而确定所述待处理节点与各第二节点之间的待迁移数据量。
判断模块50,用于判断所述待迁出节点集中是否还存在所述第一节点。
循环模块60,用于在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤。
可以理解的是,在不存在所述第一节点时,说明该分布式缓存系统中各节点的负载已经达到了一个比较均衡的状态,则可以结束相应的方法流程。
本实施例中,通过获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点,基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出,判断所述待迁出节点集中是否还存在所述第一节点,在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤,本发明在选取迁移对象时,基于各缓存节点的平均迁移代价对迁移节点进行排序后再选取目标迁移节点,使整个分布式缓存系统的整体迁移代价变小,减少整个系统的数据迁移时间,提升了系统的数据吞吐量。
可理解的是,所述数据迁移装置中的各模块还用于实现上述方法中的各步骤,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
单词第一、第二、以及第三等的使用不表示任何顺序,可将这些单词解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端智能电视(可以是手机,计算机,服务器,空调器,或者网络智能电视等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种数据迁移方法,其特征在于,所述方法包括以下步骤:
获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态;
在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集;
基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点;
基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出,保证整个系统中的第一节点在选取目标迁移节点时,迁移代价都是最小的,从而减少整个系统的迁移代价;
判断所述待迁出节点集中是否还存在所述第一节点;
在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤;
所述基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出之前,所述方法还包括:
通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价,所述预设迁移开销模型包括迁移时间预测模型和性能衰减预测模型;
根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
2.如权利要求1所述的方法,其特征在于,所述获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态,具体包括:
获取分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中各节点的负载占比,基于各节点的负载占比确定所述分布式缓存系统的负载均衡状态。
4.如权利要求3所述的方法,其特征在于,所述在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集,具体包括:
基于所述分布式缓存系统中各节点的负载量,确定所述分布式缓存系统中所有节点的负载均量;
将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集。
5.如权利要求4所述的方法,其特征在于,所述将大于所述负载均量的负载量对应的节点确定为所述第一节点,组成待迁出节点集,并将小于所述负载均量的负载量对应的节点确定为所述第二节点,组成待迁入节点集,具体包括:
获取所述分布式缓存系统中各节点的负载量与所述负载均量的差值;
将与所述负载均量的差值高于第一预设阈值的负载量对应的节点确定为所述第一节点,将与所述负载均量的差值低于第二预设阈值的负载量对应的节点确定为所述第二节点。
6.如权利要求1所述的方法,其特征在于,所述基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出之后,所述方法还包括:
获取各第二节点的当前负载量;
将超出预设负载量的当前负载量对应的目标第二节点从所述待迁入节点集中移出。
7.一种数据迁移设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如权利要求1至6中任一项所述的数据迁移方法的步骤。
8.一种存储介质,其特征在于,所述存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如权利要求1至6中任一项所述的数据迁移方法的步骤。
9.一种数据迁移装置,其特征在于,所述数据迁移装置包括:
获取模块,用于获取分布式缓存系统中各节点的负载量,并基于各节点的负载量确定所述分布式缓存系统的负载均衡状态;
集合模块,用于在所述负载均衡状态不满足预设条件时,从所述分布式缓存系统中选取若干第一节点,组成待迁出节点集,并从所述分布式缓存系统中选取若干第二节点,组成待迁入节点集;
选取模块,用于基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点;
迁移模块,用于基于所述待处理节点与任意所述第二节点之间的平均迁移代价,确定所述待处理节点的目标迁移节点,将所述待处理节点的数据迁移至所述目标迁移节点中,并将所述待处理节点从所述待迁出节点集中移出;
判断模块,用于判断所述待迁出节点集中是否还存在所述第一节点;
循环模块,用于在存在所述第一节点时,重复执行所述基于各第一节点的负载量,从所述待迁出节点集中选出待处理节点的步骤;
所述迁移模块,还用于通过预设迁移开销模型确定所述待处理节点与任意所述第二节点之间的总迁移代价,所述预设迁移开销模型包括迁移时间预测模型和性能衰减预测模型;根据所述待处理节点与任意所述第二节点之间的总迁移代价,以及所述待处理节点与各第二节点之间的待迁移数据量,确定所述待处理节点与任意所述第二节点之间的平均迁移代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910674457.3A CN110377430B (zh) | 2019-07-24 | 2019-07-24 | 数据迁移方法、设备、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910674457.3A CN110377430B (zh) | 2019-07-24 | 2019-07-24 | 数据迁移方法、设备、存储介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377430A CN110377430A (zh) | 2019-10-25 |
CN110377430B true CN110377430B (zh) | 2021-08-31 |
Family
ID=68255713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910674457.3A Active CN110377430B (zh) | 2019-07-24 | 2019-07-24 | 数据迁移方法、设备、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377430B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143326A (zh) * | 2021-12-08 | 2022-03-04 | 深圳前海微众银行股份有限公司 | 负载调节方法、管理节点以及存储介质 |
CN115203177B (zh) * | 2022-09-16 | 2022-12-06 | 北京智阅网络科技有限公司 | 一种分布式数据存储系统及存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593347A (zh) * | 2012-08-14 | 2014-02-19 | 中兴通讯股份有限公司 | 一种均衡负载的方法及分布式数据库系统 |
CN105227645A (zh) * | 2015-09-15 | 2016-01-06 | 齐鲁工业大学 | 一种云数据迁移方法 |
CN107341240A (zh) * | 2017-07-05 | 2017-11-10 | 中国人民大学 | 一种应对倾斜数据流在线连接的处理方法 |
CN108595108A (zh) * | 2017-12-29 | 2018-09-28 | 北京奇虎科技有限公司 | 一种数据的迁移方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9344484B2 (en) * | 2011-05-27 | 2016-05-17 | Red Hat, Inc. | Determining consistencies in staged replication data to improve data migration efficiency in cloud based networks |
JP6065642B2 (ja) * | 2013-02-25 | 2017-01-25 | 富士通株式会社 | ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法 |
CN104166596B (zh) * | 2013-05-17 | 2018-06-26 | 华为技术有限公司 | 一种内存分配方法及节点 |
JP6955142B2 (ja) * | 2017-03-17 | 2021-10-27 | 富士通株式会社 | 情報処理装置、ストレージ制御方法およびストレージ制御プログラム |
CN108536539B (zh) * | 2018-04-26 | 2021-12-17 | 东北大学 | 一种工业分布式数据采集系统中的任务调度方法 |
CN108900428A (zh) * | 2018-06-26 | 2018-11-27 | 南京邮电大学 | 基于交换机动态迁移的控制器负载均衡方法 |
CN109388480A (zh) * | 2018-11-01 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种处理云资源的方法及装置 |
CN109688068A (zh) * | 2019-02-03 | 2019-04-26 | 辽宁邮电规划设计院有限公司 | 基于大数据分析的网络负载均衡方法和装置 |
-
2019
- 2019-07-24 CN CN201910674457.3A patent/CN110377430B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593347A (zh) * | 2012-08-14 | 2014-02-19 | 中兴通讯股份有限公司 | 一种均衡负载的方法及分布式数据库系统 |
CN105227645A (zh) * | 2015-09-15 | 2016-01-06 | 齐鲁工业大学 | 一种云数据迁移方法 |
CN107341240A (zh) * | 2017-07-05 | 2017-11-10 | 中国人民大学 | 一种应对倾斜数据流在线连接的处理方法 |
CN108595108A (zh) * | 2017-12-29 | 2018-09-28 | 北京奇虎科技有限公司 | 一种数据的迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110377430A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106302632B (zh) | 一种基础镜像的下载方法以及管理节点 | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN110377430B (zh) | 数据迁移方法、设备、存储介质及装置 | |
EP3331218B1 (en) | Method and device for leveling load of distributed database | |
CN109491788B (zh) | 一种虚拟化平台负载均衡实现方法及装置 | |
CN110753112A (zh) | 云服务的弹性伸缩方法和装置 | |
CN110933178B (zh) | 调整集群系统内的节点配置的方法及服务器 | |
CN111556165A (zh) | 基于云计算的信息处理方法和系统 | |
CN111045821A (zh) | 一种容器调度方法、装置、容器调度器及可读存储介质 | |
CN107786463B (zh) | 一种网络数据的下载方法及装置和介质产品 | |
US20210360058A1 (en) | Job allocation support system and method | |
CN108156212B (zh) | 一种基于用户感知的弹性伸缩方法及系统 | |
CN107784195A (zh) | 数据处理方法及装置 | |
CN112637286B (zh) | 网络架构调整方法、装置、系统和计算机可读存储介质 | |
KR20230073315A (ko) | 리소스 스케줄링 방법 및 시스템, 전자 디바이스, 그리고 컴퓨터 판독 가능 저장 매체 | |
CN110995856B (zh) | 一种服务器扩展的方法、装置、设备及存储介质 | |
CN111382141A (zh) | 主从架构配置方法、装置、设备以及计算机可读存储介质 | |
CN115842828A (zh) | 一种网关负载均衡控制方法、装置、设备及可读存储介质 | |
CN115150399A (zh) | 负载均衡方法、负载均衡装置、处理系统及存储介质 | |
CN110688223B (zh) | 数据处理方法及相关产品 | |
CN111966490A (zh) | 一种Spark分区负载均衡方法 | |
CN108520025B (zh) | 一种服务节点确定方法、装置、设备及介质 | |
CN112631781A (zh) | 一种算子执行方法、装置、电子设备及存储介质 | |
CN112559115A (zh) | 一种容器镜像的删除方法、装置及设备 | |
CN112948104A (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 |