CN113596153A - 一种数据均衡方法及系统 - Google Patents

一种数据均衡方法及系统 Download PDF

Info

Publication number
CN113596153A
CN113596153A CN202110859430.9A CN202110859430A CN113596153A CN 113596153 A CN113596153 A CN 113596153A CN 202110859430 A CN202110859430 A CN 202110859430A CN 113596153 A CN113596153 A CN 113596153A
Authority
CN
China
Prior art keywords
data
node
index
migration
fragment
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
Application number
CN202110859430.9A
Other languages
English (en)
Other versions
CN113596153B (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.)
Xinhua Zhiyun Technology Co ltd
Original Assignee
Xinhua Zhiyun Technology Co ltd
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 Xinhua Zhiyun Technology Co ltd filed Critical Xinhua Zhiyun Technology Co ltd
Priority to CN202110859430.9A priority Critical patent/CN113596153B/zh
Publication of CN113596153A publication Critical patent/CN113596153A/zh
Application granted granted Critical
Publication of CN113596153B publication Critical patent/CN113596153B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种数据均衡方法及系统,其中方法包括以下步骤:获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;获取所述目标节点组所对应的索引、以及各数据节点的节点负载数据;基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群;本发明通过多轮迭代计算,计算获得目标节点组达到均衡状态时的分片分布数据,即,获得均衡分布数据,基于均衡分布数据进行分片迁移,能够在达到均衡状态的前提下,有效减少因分片重复迁移造成的资源浪费。

Description

一种数据均衡方法及系统
技术领域
本发明涉及数据处理领域,尤其涉及一种用于存算分离的集群的数据均衡技术。
背景技术
现有技术中,存算分离场景下集群对分片进行数据均衡的方法为:
在分片发生变化(包括迁移、新增等行为)时,主节点触发均衡步骤,由主节点统计各个数据节点的分片数以及各数据节点中每个索引所对应的分片数,进行均衡计算并根据计算结果进行分片迁移;
但由于难以通过一次均衡计算即可达到均衡状态,故在均衡过程中将会进行多次分片迁移,且存在分片重复迁移加载的情况。
发明内容
本发明针对现有技术中的分片重复迁移缺点,提供了一种数据均衡技术,本技术直接根据均衡分布数据进行分片迁移,能够在达到均衡状态的前提下,有效减少因分片重复迁移造成的资源浪费。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种数据均衡方法,包括以下步骤:
获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;获取所述目标节点组所对应的索引、以及各数据节点的节点负载数据;
基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;
基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群,该集群为存算分离的集群;
基于所述节点负载数据对各索引的分片分布数据进行迭代计算的步骤具体为:
依次判断各索引的分片是否分布均衡,当分布不均衡时,计算该索引的分片在分布均衡时的分片分布数据并更新;
判断本次迭代过程中是否对分片分布数据进行更新,当进行更新时,继续下一轮迭代计算,当未进行更新时,结束迭代计算,并将各索引的分片分布数据作为均衡分布数据输出。
作为一种可实施方式:
获取当前索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算当前索引的不均衡度;
当所述不均衡度大于预设的不均衡度阈值时,判定当前索引的分片分布不均衡,否则判定当前索引的分片分布均衡。
作为一种可实施方式:
当前索引的分片分布不均衡时,按照预设的迁移规则更新分片分布数据,并基于更新后的分片分布数据和所述节点负载数据更新当前索引的不均衡度,直至更新后的不均衡度小于等于预设的不均衡度阈值。
作为一种可实施方式:
基于分片分布数据和节点负载数据计算索引在各数据节点上的权重,其中分片分布数据包括索引对应的分片数,以及各分片所对应的数据节点,还包括各分片在对应数据节点上的内存占用量和磁盘占用量;
提取索引所对应的最大权重和最小权重,基于所述最大权重和所述最小权重计算获得权重差,将所述权重差作为所述索引的不均衡度。
作为一种可实施方式:
将所述最大权重所对应的数据节点作为第一节点,将所述最小权重所对应的数据节点作为第二节点;
按照预设的迁移规则,预测将所述索引存储于所述第一节点中的分片迁移至第二节点后的分片分布数据,获得更新后的分片分布数据。
作为一种可实施方式:
计算权重的公式为:
Figure BDA0003185200120000021
其中,Weight(n,i)表示索引i在数据节点n上的权重;
Nn是数据节点n上所存储的分片数,Nn,i是索引i在数据节点n上的所存储的分片数;
Mn为数据节点n的分片内存占用量,Mall为目标节点组对应的分片内存占用总量;
Dn为数据节点n的分片磁盘占用量,Dall为目标节点组对应的分片磁盘占用总量;
Mn,i为索引i在数据节点n上的分片内存占用量,Mall,i为索引i在目标节点组上的分片内存占用总量;
Dn,i为索引i在数据节点n上的分片磁盘占用量,Dall,i为索引i在目标节点组上的分片磁盘占用总量;
Ln为数据节点n的负载,Lall为目标节点组的总负载;
r1、r2、k1、k2、k3均为调优参数,且r1+r2=1。
作为一种可实施方式:
获取各索引的初始分片分布数据;
基于初始分片分布数据和均衡分布数据,生成与索引相对应的迁移数据集,所述迁移数据集包含至少一条迁移数据,所述迁移数据包括迁移分片信息、源节点和目标节点;
基于所述源节点和所述目标节点,对迁移数据集中的迁移数据进行合并,生成至少一条合并数据;
基于各合并数据生成相应的分片迁移指令。
作为一种可实施方式:
从迁移数据集中抽取一条迁移数据,获得起始迁移数据;
将所述起始迁移数据作为第一待合并数据,基于第一待合并数据的目标节点,在所述迁移数据集中检索与所述第一待合并数据相对应的第二待合并数据,其中第一待合并数据的目标节点和第二待合并数据的源节点相同;
当检索到所述第二待合并数据时,抽取所述第二待合并数据,并将所述第二待合并数据作为第一待合并数据对所述迁移数据集进行检索;
当未检索到所述第二待合并数据时,将所述第一待合并数据作为结束迁移数据;基于起始迁移数据和结束迁移数据生成相应的合并数据,其中合并数据的源节点为起始迁移数据的源节点,合并数据的目标节点为结束迁移数据的目标节点。
作为一种可实施方式,依次判断各索引的分片是否分布均衡前,还包括排序步骤,具体为:
获取各索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算各索引的不均衡度;
基于所述不均衡度,按照从大到小的顺序对各索引进行排序。
本发明还提出一种数据均衡系统,包括:
获取模块,用于获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;还用于获取所述目标节点组所对应的索引,以及各数据节点的节点负载数据;
计算模块,用于基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;
均衡控制模块,用于基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群;
所述计算模块包括迭代计算单元和终止判断单元;
所述迭代计算单元,用于依次判断各索引的分片是否分布均衡,当分布不均衡时,计算该索引的分片在分布均衡时的分片分布数据并更新;
所述终止判断单元,用于判断本次迭代过程中是否存在调整的分片分布数据,当存在时,令所述迭代计算单元继续下一轮迭代计算,当不存在时,结束迭代计算,并将各索引的分片分布数据作为均衡分布数据输出。
本发明由于采用了以上技术方案,具有显著的技术效果:
本发明通过多轮迭代计算,计算获得目标节点组达到均衡状态时的分片分布数据,即,获得均衡分布数据,直接根据均衡分布数据进行分片迁移,能够在达到均衡状态的前提下,有效减少因分片重复迁移造成的资源浪费。
本发明基于同一索引下各分片的差异较小的现象,对迁移数据的合并步骤进行设计,进一步减少分片的迁移量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明数据均衡方法的工作流程示意图;
图2是本发明数据均衡系统的模块连接示意图;
图3是图2中计算模块200的模块连接示意图;
图4是图2中均衡控制模块300的模块连接示意图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
实施例1、一种数据均衡方法,包括以下步骤:
S100、获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;获取所述目标节点组所对应的索引、以及各数据节点的节点负载数据;
S200、基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;
S300、基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群;
在实际使用过程中,预先获取集群的状态,解析获得该集群内所有数据节点,并按照节点属性对各数据节点分组,从而获得若干个节点组,分别将各节点组作为目标节点组,按照本实施例所公开的数据均衡方法生成相应的分片迁移指令。
传统集群的数据节点存储层都在各自节点的磁盘上,迁移分片时需要在机器间通过网络传输拷贝分片数据,迁移速度慢,且迁移时间与数据量成正比,一次分片迁移甚至长达数小时,而迁移过程中存在分片数据被删除或分片数据被大量写入的情况,将导致迁移完成后的负载情况与在先预估的负载情况存在较大误差;
基于上述原因,现今对集群进行数据均衡时,往往做一次均衡计算,基于计算结果进行分片迁移,迁移完成后再次进行均衡计算,且随着此种均衡方案长期、普遍的使用,使得本领域技术人员在对均衡方案进行优化时,着重于对均衡算法的优化,不考虑对一次计算、一次迁移的均衡方式进行改进;
随着技术发展,现今公开存储计算分离的集群,此类集群中数据节点的存储层共用一个NAS(网络附属存储),分片迁移仅需于源节点关闭待迁移的分片,于目标节点加载待迁移的分片迁移速度为秒级;
即使存算分离场景下分片的迁移速度出现显著提升,本领域技术人员仍旧沿用一次计算、一次迁移的均衡方式,忽视此种方式中需要多次进行分片迁移才能达到均衡状态,且均衡过程中易出现分片被重复迁移的缺陷。
本实施例通过进行多轮迭代计算,计算获得目标节点组达到均衡状态时,各索引的分片分布数据,即,计算获得均衡分布数据,由于多轮迭代计算仅是计算过程,1s内可迭代计算十万次,且分片迁移速度亦为秒级,故在数据均衡的过程中,分片数据不会出现较大变化,仅需基于均衡分布数据进行一次分片迁移,即可达到均衡状态;
本实施例通过达到数据层面的均衡,使所在集群达到负载均衡。
进一步地,步骤S200中基于所述节点负载数据对各索引的分片分布数据进行迭代计算的步骤具体为:
S210、依次判断各索引的分片是否分布均衡,当分布不均衡时,计算该索引的分片在分布均衡时的分片分布数据并更新;
S220、判断本次迭代过程中是否对分片分布数据进行更新,当进行更新时,继续下一轮迭代计算,当未进行更新时,结束迭代计算,并将各索引的分片分布数据作为均衡分布数据输出。
由于当分片被迁移后,不仅影响所在索引的分片分布情况,还将影响其他索引的分片分布情况,故在对分片分布数据进行更新后,需要进行下一次迭代计算,直至目标节点组中每一个索引的分片分布情况均无需进行更新,表示各目标节点组达到均衡状态。
进一步地,步骤S210中判断各索引的分片是否分布均衡的方法为:
S211、获取当前索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算当前索引的不均衡度;
不均衡度越大,对应索引的分片分布越不均衡,所述不均衡度体现索引在各个数据节点上负载差异程度即可。
本实施例中计算不均衡度的方法为:
①、基于分片分布数据和节点负载数据计算索引在各数据节点上的权重,其中分片分布数据包括索引对应的分片数,以及各分片所对应的数据节点,还包括各分片在对应数据节点上的内存占用量和磁盘占用量,节点负载数据包括各个数据节点的负载;
本领域技术人员可根据实际情况利用现有已公开的计算索引在数据节点上权重的方法;
但由于传统集群通过数据传输的方式进行分片迁移,分片迁移时间较长,故无法考虑cpu和内存属于瞬时因素,如传统集群中目标节点在分片迁移需要10分钟,目标节点在迁移前和迁移后的cpu和内存可能出现较大变化,导致分片还将迁移回源节点;
存算分离的场景下,分片迁移的速度为秒级,分片迁移过程中cpu和内存将不会出现较大差别,故本实施例可基于内存占用情况进行权重计算;
本实施例中计算权重的公式为:
Figure BDA0003185200120000061
其中,Weight(n,i)表示索引i在数据节点n上的权重;
Nn是数据节点n上所存储的分片数,Nn,i是索引i在数据节点n上的所存储的分片数;
Mn为数据节点n的分片内存占用量,Mall为目标节点组对应的分片内存占用总量;
Dn为数据节点n的分片磁盘占用量,Dall为目标节点组对应的分片磁盘占用总量;
Mn,i为索引i在数据节点n上的分片内存占用量,Mall,i为索引i在目标节点组上的分片内存占用总量;
Dn,i为索引i在数据节点n上的分片磁盘占用量,Dall,i为索引i在目标节点组上的分片磁盘占用总量;
Ln为数据节点n的负载,Lall为目标节点组的总负载;
已知各分片在对应数据节点上的内存占用量和磁盘占用量,即可基于数据节点和/或索引统计获得上述各占用量及占用重量,此为现有常规技术,故不在本实施例中进行详细介绍。
已知各数据节点的负载,即可统计获得目标节点组中所有数据节点对应负载的和,即目标节点组的总负载,此为现有常规技术,故不在本实施例中进行详细介绍。
r1、r2、k1、k2、k3均为调优参数,且r1+r2=1。
r1用于控制数据节点的分片均衡度,r2用于控制索引的分片均衡度,k1为内存影响权重,k2为磁盘影响权重,k3为负载影响权重,本领域技术人员可以自行设定r1、r2、k1、k2、k3的权值,还可在测试过程中对权值进行调整,本实施例不对其进行详细介绍。
注,上式中“*”表示乘积。
②、提取索引所对应的最大权重和最小权重,基于所述最大权重和所述最小权重计算获得权重差,将所述权重差作为所述索引的不均衡度;即,不均衡度delta=Weightmax-Weightmin
S212、当所述不均衡度大于预设的不均衡度阈值时,判定当前索引的分片分布不均衡,否则判定当前索引的分片分布均衡。
本领域技术人员可根据实际需要自行设定不均衡度阈值。
本实施例中不均衡度阈值为1。
进一步地,步骤S210中,计算索引的分片在分布均衡时的分片分布数据的方法为:
S213、当前索引的分片分布不均衡时,按照预设的迁移规则更新分片分布数据,并基于更新后的分片分布数据和所述节点负载数据更新当前索引的不均衡度,直至更新后的不均衡度小于等于预设的不均衡度阈值。
具体为:
将所述最大权重所对应的数据节点作为第一节点,将所述最小权重所对应的数据节点作为第二节点;
按照预设的迁移规则,预测将所述索引存储于所述第一节点中的分片迁移至第二节点后的分片分布数据,获得更新后的分片分布数据。
本领域技术人员可自行设定迁移规则,如设定迁移分片的数量、迁移分片的筛选规则;
在实际预测更新过程中,本领域技术人员可基于索引随机从第一节点中选取任意一个分片,预测将该分片迁移至第二节点后对应索引的分片分布数据,并基于预测所得的分片分布数据进行更新;
基于更新分片分布数据更新最大权重、最小权重以及不均衡度;当不均衡度仍大于预设的不均衡度阈值时,基于更新后的最大权重、最小权重再次预测分片迁移后的分片分布数据,直至不均衡度小于等于预设的不均衡度阈值,表示索引的分片分布均衡。
由于同一索引下各分片的差异较小,故可随机选择一分片进行迁移预测。
进一步地,在步骤S210中依次判断各索引的分片是否分布均衡前,还包括排序步骤,具体为:
获取各索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算各索引的不均衡度;
基于所述不均衡度,按照从大到小的顺序对各索引进行排序。
即,从最不均衡的索引开始处理。
进一步地,步骤S300中基于所述均衡分布数据生成相应的分片迁移指令的具体步骤为:
S310、获取各索引的初始分片分布数据;
所述初始分片分布数据为从对应集群处获取的实际分片分布数据;
S320、基于初始分片分布数据和均衡分布数据,生成与索引相对应的迁移数据集,所述迁移数据集包含至少一条迁移数据,所述迁移数据包括迁移分片信息、源节点和目标节点;
将初始分片分布数据中各分片的数据节点作为相应的源节点,将均衡分布数据各分片的数据节点作为相应的目标节点,将源节点和目标节点不同的分片作为待迁移分片,获得相应的迁移数据;
将各迁移数据基于索引分组,即可获得相应的迁移数据集。
S330、基于所述源节点和所述目标节点,对迁移数据集中的迁移数据进行合并,生成至少一条合并数据;
本领域技术人员可根据实际需要自行设定合并规则,如从迁移数据集中剔除源节点和目标节点相反的一对迁移数据。
本实施例中合并方法具体为:
S331、从迁移数据集中抽取一条迁移数据,获得起始迁移数据;
本领域技术人员可自行设定抽取规则,如随机抽取,或基于源节点编号,按照从小到大的方式进行抽取,本实施例随机从迁移数据集中抽取一条迁移数据作为起始迁移数据。
S332、将所述起始迁移数据作为第一待合并数据,基于第一待合并数据的目标节点,在所述迁移数据集中检索与所述第一待合并数据相对应的第二待合并数据,其中第一待合并数据的目标节点和第二待合并数据的源节点相同;
即,如第一待合并数据的目标节点为节点3,则从迁移数据集中检索一条源节点为节点3的迁移数据作为第二待合并数据。
S333、当检索到所述第二待合并数据时,抽取所述第二待合并数据,并将所述第二待合并数据作为第一待合并数据对所述迁移数据集进行检索;
即,将抽取获得的第二待合并数据代替步骤S332中的第一待合并数据,重复步骤S332。
S334、当未检索到所述第二待合并数据时,将所述第一待合并数据作为结束迁移数据;基于起始迁移数据和结束迁移数据生成相应的合并数据,其中合并数据的源节点为起始迁移数据的源节点,合并数据的目标节点为结束迁移数据的目标节点。
重复步骤S331至步骤S334,直至迁移数据集为空,完成对迁移数据集中迁移数据的合并处理;即,基于起始迁移数据和结束迁移数据生成相应的合并数据的同时,还将所抽取的各迁移数据做删除处理,即,本实施例采用不放回方式进行数据抽取,所抽取的起始迁移数据和各第二迁移数据均不放回至迁移数据集中。
合并公式如下:
Mi(n1,n2,s1)+Mi(n2,n3,s2)=Mi(n1,n3,s1);
其中,Mi(n1,n2,s1)指示索引i的s1分片从n1节点迁移到n2节点;
由于同一索引下各分片的差异较小,故,同一数据节点上,需要迁移的分片可相互代替;故同一索引的s1分片从n1节点迁移到n2节点,s2分片从n2节点迁移到n3节点,可使s1分片从n1节点迁移到n3节点,从而进一步减少分片的迁移量。
S340、基于各合并数据生成相应的分片迁移指令。
所述合并数据亦包括迁移分片信息、源节点和目标节点,基于合并数据生成分片迁移指令属于现有技术,故不再本实施例中进行详细介绍。
以下一个具体的案例对本实施例所公开的负载迁移方法进行详细介绍:
存算分离的集群包括若干个主节点、若干个数据节点、分别与各主节点和各数据节点信号相连的nfs存储服务区,用于存储节点元信息和索引数据信息;
关闭上述集群的自动均衡开关,配置均衡处理的周期,如每隔1h对该集群进行一次均衡处理;
均衡处理的内容具体包括
(1)、对数据节点分组:
获取集群的状态,解析获得该集群的数据节点,并按节点数据对解析获得的数据节点进行分组,获得若干节点组,不同节点组之间的分片不能相互迁移。
(2)、对各节点组逐一进行均衡处理
参照图1,将各节点组依次作为目标节点组,按照下述步骤对目标节点组进行均衡处理:
(2.1)、参数获取,获取节点负载数据和各索引的初始分片分布数据:
获取目标节点组对应的索引数据信息,所述索引数据信息包括各索引的分片信息,包括分片数和分片所在数据节点;
基于所述索引数据信息获取各分片的内存占用量和磁盘占用量,生成相应的分片分布信息,所述分片分布信息即为初始分片分布信息,同时还获取目标节点组中各数据节点的负载,获得节点负载数据。
(2.2)、索引排序,计算各索引的不均衡度,并根据不均衡度进行索引排序:
计算每个索引在各数据节点上的权重;
获取各索引的最大权重和最小权重,将最大权重和最小权重的差值作为对应索引的不均衡度;
按照不均衡度从大到小的顺序对索引进行排序。
(2.3)、更新分布数据;
按照步骤(2.2)的排序,依次对各索引的分片分布数据进行更新;
对第i个索引(i≤I,I为索引的总数)的分片分布数据进行迭代计算的步骤为:
(2.3.1)、权重计算,计算第i个索引在各数据节点上的权重;
获取各数据节点的负载,并获取第i个索引的分片分布数据,计算获得第i个索引在各数据节点上的权重;
注,虽然步骤(2.2)中已经计算过权重,但随着分片分布数据的更新,各索引对应的权重数据也会发生改变,故需要重新进行计算。
(2.3.2)、均衡判断:
基于步骤(2.3.1)计算获得的权重,生成第i个索引的不均衡度;
当不均衡度大于1时,判定第i个索引不均衡,否则判定第i个索引均衡;
当判定第i个索引均衡时,将第i+1个索引代替第i个索引,重复进行步骤(2.3.1)和(2.3.2),直至i=I。
(2.3.3)、分片分布数据更新,基于权重更新第i个索引分片的分片分布数据:
当判定第i个索引不均衡时,基于步骤(2.3.1)计算获得的权重,获取最大权重所对应的数据节点,获得第一节点,获取最小权重对应的节点,获得第二节点;
预测将第一节点中第i个索引的一个迁移至第二节点后第i个索引的分片分布数据并更新,获得更新后的分片分布数据;
基于更新后的分片分布数据重复进行步骤(2.3.1)至步骤(2.3.3),直至第i个索引的不均衡度小于等于1。
(2.4)、迭代终止判断:
判断步骤(2.3)中是否无分片分布数据更新,当无分片分布数据更新时,输出各索引的分片分布数据作为均衡分布数据,否则重复进行步骤(2.2)和步骤(2.3),基于更新后的分片分布数据对各索引重新排序及数据更新。
(3)、生成迁移数据:
提取步骤(2.1)所获取的初始分片分布数据和步骤(2.4)输出的均衡分布数据,计算获得若干条迁移数据;
(4)、合并迁移数据:
基于索引对各迁移数据进行分组,获得相应的迁移数据集;
按照下述步骤对各迁移数据集中的迁移数据进行合并:
(4.1)、初始迁移数据抽取:
从迁移数据集中随机抽取一条迁移数据作为初始迁移数据;
(4.2)、待合并数据抽取:
将所述初始迁移数据作为第一待合并数据;
提取第一待合并数据的目标节点;
从迁移数据集中抽取源节点为所述目标节点迁移数据,获得第二待合并数据;
当第二待合并数据不为空时,将第二迁移数据作为第一待合并数据,直至第二待迁移数据为空;
(4.3)、待合并数据合并:
当第二待合并数据为空时,将该第二待合并数据所对应的第一待合并数据作为结束迁移数据;
基于起始迁移数据和结束迁移数据生成相应的合并数据,其中合并数据的源节点为起始迁移数据的源节点,合并数据的目标节点为结束迁移数据的目标节点。
同时删除各第一待合并数据和第二待合并数据,重复步骤(4.1)至(4.3),直至迁移数据集为空。
(5)、生成分片迁移指令;
汇总所有合并数据,生成相应的分片迁移指令,将所述分片迁移指令发送至集群的主节点,由主节点控制作为待迁移分片源节点的数据节点关闭相应分片,再控制作为待迁移分片目标节点的数据节点加载相应分片,完成对当前目标节点组的数据均衡。
实施例2、一种数据均衡系统,与外部的集群信号相连,所述集群为存算分离的集群,其包括若干个主节点、若干个数据节点、分别与各主节点和各数据节点信号相连的nfs存储服务区;
参照图2,所述数据均衡系统包括:
获取模块100,用于获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;还用于获取所述目标节点组所对应的索引,以及各数据节点的节点负载数据;
计算模块200,用于基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;
均衡控制模块300,用于基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群;
参照图3,所述计算模块200包括迭代计算单元210和终止判断单元220;
所述迭代计算单元210,用于依次判断各索引的分片是否分布均衡,当分布不均衡时,计算该索引的分片在分布均衡时的分片分布数据并更新;
所述终止判断单元220,用于判断本次迭代过程中是否存在调整的分片分布数据,当存在时,令所述迭代计算单元210继续下一轮迭代计算,当不存在时,结束迭代计算,并将各索引的分片分布数据作为均衡分布数据输出。
进一步地,所述计算模块200还包括不均衡度计算单元230,所述迭代计算单元210,包括均衡判断单元和分布更新单元;
所述不均衡度计算单元230,用于获取当前索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算当前索引的不均衡度;
所述均衡判断单元,用于当所述不均衡度大于预设的不均衡度阈值时,判定当前索引的分片分布不均衡,否则判定当前索引的分片分布均衡。
进一步地,所述分布更新单元,用于在当前索引的分片分布不均衡时,按照预设的迁移规则更新分片分布数据,并基于更新后的分片分布数据和所述节点负载数据更新当前索引的不均衡度,直至更新后的不均衡度小于等于预设的不均衡度阈值。
进一步地,所述不均衡度计算单元230包括权重计算单元和差值单元;
所述权重计算单元,用于基于分片分布数据和节点负载数据计算索引在各数据节点上的权重,其中分片分布数据包括索引对应的分片数,以及各分片所对应的数据节点,还包括各分片在对应数据节点上的内存占用量和磁盘占用量;
差值计算单元,用于提取索引所对应的最大权重和最小权重,基于所述最大权重和所述最小权重计算获得权重差,将所述权重差作为所述索引的不均衡度。
进一步地,所述分布更新单元被配置为:
将所述最大权重(当前索引的当前最大权重)所对应的数据节点作为第一节点,将所述最小权重(当前索引的当前最小权重)所对应的数据节点作为第二节点;
按照预设的迁移规则,预测将所述索引存储于所述第一节点中的分片迁移至第二节点后的分片分布数据,获得更新后的分片分布数据。
进一步地,参照图4,所述均衡控制模块300包括:
生成单元310,用于获取各索引的初始分片分布数据;还用于基于初始分片分布数据和均衡分布数据,生成与索引相对应的迁移数据集,所述迁移数据集包含至少一条迁移数据,所述迁移数据包括迁移分片信息、源节点和目标节点;
合并单元320,用于基于所述源节点和所述目标节点,对迁移数据集中的迁移数据进行合并,生成至少一条合并数据;
控制单元330,用于基于各合并数据生成相应的分片迁移指令,还用于将所述分片迁移指令发送至所述目标节点组所在集群。
进一步地,合并单元320被配置为:
从迁移数据集中抽取一条迁移数据,获得起始迁移数据;
将所述起始迁移数据作为第一待合并数据,基于第一待合并数据的目标节点,在所述迁移数据集中检索与所述第一待合并数据相对应的第二待合并数据,其中第一待合并数据的目标节点和第二待合并数据的源节点相同;
当检索到所述第二待合并数据时,抽取所述第二待合并数据,并将所述第二待合并数据作为第一待合并数据对所述迁移数据集进行检索;
当未检索到所述第二待合并数据时,将所述第一待合并数据作为结束迁移数据;基于起始迁移数据和结束迁移数据生成相应的合并数据,其中合并数据的源节点为起始迁移数据的源节点,合并数据的目标节点为结束迁移数据的目标节点。
进一步地,还包括排序模块400;
所述排序模块400,用于利用所述不均衡度计算单元230计算各索引的不均衡度,还用于基于所述不均衡度,按照从大到小的顺序对各索引进行排序。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是:
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
此外,需要说明的是,本说明书中所描述的具体实施例,其所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (10)

1.一种数据均衡方法,其特征在于包括以下步骤:
获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;获取所述目标节点组所对应的索引、以及各数据节点的节点负载数据;
基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;
基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群;
基于所述节点负载数据对各索引的分片分布数据进行迭代计算的步骤具体为:
依次判断各索引的分片是否分布均衡,当分布不均衡时,计算该索引的分片在分布均衡时的分片分布数据并更新;
判断本次迭代过程中是否对分片分布数据进行更新,当进行更新时,继续下一轮迭代计算,当未进行更新时,结束迭代计算,并将各索引的分片分布数据作为均衡分布数据输出。
2.根据权利要求1所述的数据均衡方法,其特征在于:
获取当前索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算当前索引的不均衡度;
当所述不均衡度大于预设的不均衡度阈值时,判定当前索引的分片分布不均衡,否则判定当前索引的分片分布均衡。
3.根据权利要求2所述的数据均衡方法,其特征在于:
当前索引的分片分布不均衡时,按照预设的迁移规则更新分片分布数据,并基于更新后的分片分布数据和所述节点负载数据更新当前索引的不均衡度,直至更新后的不均衡度小于等于预设的不均衡度阈值。
4.根据权利要求2或3所述的数据均衡方法,其特征在于:
基于分片分布数据和节点负载数据计算索引在各数据节点上的权重,其中分片分布数据包括索引对应的分片数,以及各分片所对应的数据节点,还包括各分片在对应数据节点上的内存占用量和磁盘占用量;
提取索引所对应的最大权重和最小权重,基于所述最大权重和所述最小权重计算获得权重差,将所述权重差作为所述索引的不均衡度。
5.根据权利要求4所述的数据均衡方法,其特征在于:
将所述最大权重所对应的数据节点作为第一节点,将所述最小权重所对应的数据节点作为第二节点;
按照预设的迁移规则,预测将所述索引存储于所述第一节点中的分片迁移至第二节点后的分片分布数据,获得更新后的分片分布数据。
6.根据权利要求5所述的数据均衡方法,其特征在于:
计算权重的公式为:
Figure FDA0003185200110000021
其中,Weight(n,i)表示索引i在数据节点n上的权重;
Nn是数据节点n上所存储的分片数,Nn,i是索引i在数据节点n上的所存储的分片数;
Mn为数据节点n的分片内存占用量,Mall为目标节点组对应的分片内存占用总量;
Dn为数据节点n的分片磁盘占用量,Dall为目标节点组对应的分片磁盘占用总量;
Mn,i为索引i在数据节点n上的分片内存占用量,Mall,i为索引i在目标节点组上的分片内存占用总量;
Dn,i为索引i在数据节点n上的分片磁盘占用量,Dall,i为索引i在目标节点组上的分片磁盘占用总量;
Ln为数据节点n的负载,Lall为目标节点组的总负载;
r1、r2、k1、k2、k3均为调优参数,且r1+r2=1。
7.根据权利要求1至3任一所述的数据均衡方法,其特征在于:
获取各索引的初始分片分布数据;
基于初始分片分布数据和均衡分布数据,生成与索引相对应的迁移数据集,所述迁移数据集包含至少一条迁移数据,所述迁移数据包括迁移分片信息、源节点和目标节点;
基于所述源节点和所述目标节点,对迁移数据集中的迁移数据进行合并,生成至少一条合并数据;
基于各合并数据生成相应的分片迁移指令。
8.根据权利要求7所述的数据均衡方法,其特征在于:
从迁移数据集中抽取一条迁移数据,获得起始迁移数据;
将所述起始迁移数据作为第一待合并数据,基于第一待合并数据的目标节点,在所述迁移数据集中检索与所述第一待合并数据相对应的第二待合并数据,其中第一待合并数据的目标节点和第二待合并数据的源节点相同;
当检索到所述第二待合并数据时,抽取所述第二待合并数据,并将所述第二待合并数据作为第一待合并数据对所述迁移数据集进行检索;
当未检索到所述第二待合并数据时,将所述第一待合并数据作为结束迁移数据;基于起始迁移数据和结束迁移数据生成相应的合并数据,其中合并数据的源节点为起始迁移数据的源节点,合并数据的目标节点为结束迁移数据的目标节点。
9.根据权利要求2或3所述的数据均衡方法,其特征在于,依次判断各索引的分片是否分布均衡前,还包括排序步骤,具体为:
获取各索引的分片分布数据,基于所述分片分布数据和所述节点负载数据计算各索引的不均衡度;
基于所述不均衡度,按照从大到小的顺序对各索引进行排序。
10.一种数据均衡系统,其特征在于,包括:
获取模块,用于获取目标节点组,所述目标节点组包含若干个节点属性相同的数据节点;还用于获取所述目标节点组所对应的索引,以及各数据节点的节点负载数据;
计算模块,用于基于所述节点负载数据对各索引的分片分布数据进行迭代计算,直至获得各索引所对应的均衡分布数据;
均衡控制模块,用于基于所述均衡分布数据生成相应的分片迁移指令,并将所述分片迁移指令发送至所述目标节点组所在集群;
所述计算模块包括迭代计算单元和终止判断单元;
所述迭代计算单元,用于依次判断各索引的分片是否分布均衡,当分布不均衡时,计算该索引的分片在分布均衡时的分片分布数据并更新;
所述终止判断单元,用于判断本次迭代过程中是否存在调整的分片分布数据,当存在时,令所述迭代计算单元继续下一轮迭代计算,当不存在时,结束迭代计算,并将各索引的分片分布数据作为均衡分布数据输出。
CN202110859430.9A 2021-07-28 2021-07-28 一种数据均衡方法及系统 Active CN113596153B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110859430.9A CN113596153B (zh) 2021-07-28 2021-07-28 一种数据均衡方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110859430.9A CN113596153B (zh) 2021-07-28 2021-07-28 一种数据均衡方法及系统

Publications (2)

Publication Number Publication Date
CN113596153A true CN113596153A (zh) 2021-11-02
CN113596153B CN113596153B (zh) 2024-07-05

Family

ID=78251274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110859430.9A Active CN113596153B (zh) 2021-07-28 2021-07-28 一种数据均衡方法及系统

Country Status (1)

Country Link
CN (1) CN113596153B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117632519A (zh) * 2024-01-24 2024-03-01 深圳市活力天汇科技股份有限公司 一种分片数据的均衡调整方法、装置、介质和电子设备
CN118132565A (zh) * 2024-04-30 2024-06-04 苏州元脑智能科技有限公司 数据索引存储的控制方法及装置、存储介质及电子设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573674A (zh) * 2015-12-15 2016-05-11 西安交通大学 一种面向海量小文件的分布式存储方法
CN106528683A (zh) * 2016-10-25 2017-03-22 深圳市盛凯信息科技有限公司 一种基于索引分片均衡的大数据云搜索平台及其方法
CN107566531A (zh) * 2017-10-17 2018-01-09 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的Elasticsearch集群扩展方法
CN107562531A (zh) * 2016-06-30 2018-01-09 华为技术有限公司 一种数据均衡方法和装置
CN108804465A (zh) * 2017-05-04 2018-11-13 中兴通讯股份有限公司 一种分布式缓存数据库数据迁移的方法及系统
CN109582758A (zh) * 2018-12-06 2019-04-05 重庆邮电大学 一种Elasticsearch索引分片优化方法
US20190179808A1 (en) * 2016-12-01 2019-06-13 Tencent Technology (Shenzhen) Company Limited Method and apparatus for data migration in database cluster, and storage medium
CN110196851A (zh) * 2019-05-09 2019-09-03 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
US20200233600A1 (en) * 2019-01-23 2020-07-23 Accenture Global Solutions Limited Data migration
CN112100185A (zh) * 2020-11-03 2020-12-18 江西云本数字科技有限公司 区块链数据平衡负载的索引系统及方法
WO2021017269A1 (zh) * 2019-07-30 2021-02-04 平安科技(深圳)有限公司 迁徙数据的方法、装置、计算机设备及存储介质
CN113177050A (zh) * 2021-05-18 2021-07-27 浙江大华技术股份有限公司 一种数据均衡的方法、装置、查询系统及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573674A (zh) * 2015-12-15 2016-05-11 西安交通大学 一种面向海量小文件的分布式存储方法
CN107562531A (zh) * 2016-06-30 2018-01-09 华为技术有限公司 一种数据均衡方法和装置
CN106528683A (zh) * 2016-10-25 2017-03-22 深圳市盛凯信息科技有限公司 一种基于索引分片均衡的大数据云搜索平台及其方法
US20190179808A1 (en) * 2016-12-01 2019-06-13 Tencent Technology (Shenzhen) Company Limited Method and apparatus for data migration in database cluster, and storage medium
CN108804465A (zh) * 2017-05-04 2018-11-13 中兴通讯股份有限公司 一种分布式缓存数据库数据迁移的方法及系统
CN107566531A (zh) * 2017-10-17 2018-01-09 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的Elasticsearch集群扩展方法
CN109582758A (zh) * 2018-12-06 2019-04-05 重庆邮电大学 一种Elasticsearch索引分片优化方法
US20200233600A1 (en) * 2019-01-23 2020-07-23 Accenture Global Solutions Limited Data migration
CN110196851A (zh) * 2019-05-09 2019-09-03 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
WO2021017269A1 (zh) * 2019-07-30 2021-02-04 平安科技(深圳)有限公司 迁徙数据的方法、装置、计算机设备及存储介质
CN112100185A (zh) * 2020-11-03 2020-12-18 江西云本数字科技有限公司 区块链数据平衡负载的索引系统及方法
CN113177050A (zh) * 2021-05-18 2021-07-27 浙江大华技术股份有限公司 一种数据均衡的方法、装置、查询系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
熊峰;刘宇;: "基于MongoDB的数据分片与分配策略研究", 计算机与数字工程, no. 04, 20 April 2019 (2019-04-20) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117632519A (zh) * 2024-01-24 2024-03-01 深圳市活力天汇科技股份有限公司 一种分片数据的均衡调整方法、装置、介质和电子设备
CN117632519B (zh) * 2024-01-24 2024-05-03 深圳市活力天汇科技股份有限公司 一种分片数据的均衡调整方法、装置、介质和电子设备
CN118132565A (zh) * 2024-04-30 2024-06-04 苏州元脑智能科技有限公司 数据索引存储的控制方法及装置、存储介质及电子设备
CN118132565B (zh) * 2024-04-30 2024-06-28 苏州元脑智能科技有限公司 数据索引存储的控制方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN113596153B (zh) 2024-07-05

Similar Documents

Publication Publication Date Title
CN111125059B (zh) 数据迁移方法、装置、存储介质及服务器
CN113596153B (zh) 一种数据均衡方法及系统
CN107220263B (zh) 数据迁移的优化方法、评估方法及处理方法及装置
CN110347651B (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN113177050B (zh) 一种数据均衡的方法、装置、查询系统及存储介质
CN103873507A (zh) 数据分块上传与存储系统及方法
WO2017008009A1 (en) Apparatuses and methods for flexible scheduling in a database system
CN108255427B (zh) 一种数据存储和动态迁移方法及装置
JP2024529206A (ja) インテリジェントコンピューティング向けのコンテナスケジューリングのための分散トレーニング
CN117422031B (zh) Atpg系统测试向量生成和精简的方法和装置
WO2017007684A1 (en) Flexible scheduling in a database system
CN111090401B (zh) 存储设备性能预测方法及装置
CN113886092A (zh) 一种计算图执行方法、装置及相关设备
CN110019528A (zh) 数据库操作负载均衡方法、装置、设备及介质
CN117806659A (zh) 一种es高可用集群容器化部署方法及相关装置
CN113111351B (zh) 测试方法、装置和计算机可读存储介质
CN111291009B (zh) 文件分块存储方法及装置
CN108259583B (zh) 一种数据动态迁移方法及装置
CN110019168B (zh) 文件合并方法和系统
CN116028873A (zh) 一种基于支持向量机的多类服务器故障预测方法
Guo et al. Handling data skew at reduce stage in Spark by ReducePartition
CN116775580A (zh) 一种文件系统中的热度识别方法、装置及计算机设备
CN111782634B (zh) 数据分布式存储方法、装置、电子设备及存储介质
CN114791912A (zh) 一种数据处理方法、系统、电子设备及存储介质
CN113535038A (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