负载均衡方法及系统与流程

文档序号:13220698阅读:212来源:国知局
技术领域本发明涉及数据处理技术,具体涉及负载均衡方法及系统。

背景技术:
针对基于整体并行同步(BSP,BulkSynchronousParallelComputingModel)模型的类Pregel处理系统,一个图处理作业由一系列的超级步组成,每个超级步的工作由多个分布式任务并行完成,具体包括三个有序的阶段:(1)并发计算阶段:每个任务使用本地内存中存储的数据完成计算工作;(2)通信阶段:各任务之间交换计算结果;(3)路障同步阶段:当一个任务完成前述阶段(1)和(2)后,进入路障同步阶段,等待其它任务,直到所有任务均完成阶段(1)和(2)的工作。类Pregel处理系统采用迭代运算,趋于逐步收敛状态,导致各任务的计算负载不同;在路障同步阶段下,会引起严重的“水桶效应”,降低系统的整体计算效率。

技术实现要素:
为解决现有存在的技术问题,本发明实施例提供一种负载均衡方法及系统,能够避免水桶效应,使各任务的计算负载均衡,提高类Pregel处理系统的计算效率。本发明实施例的技术方案是这样实现的:本发明实施例还提供了一种负载均衡方法,所述方法还包括:获取在第L超级步中每个任务的相关信息;依据每个任务的相关信息,预测每个任务在第K超级步中的激活顶点数量;依据每个任务在第K超级步的激活顶点数量,预测每个任务在第K超级步的运行时间;其中,L为大于等于1的正整数、K为大于L的正整数;依据每个任务在第K超级步中的运行时间,确定短板任务集合和长板任务集合;预测将短板任务集合中一任务上的数据迁移至长板任务集合中一任务上而产生的迁移收益及迁移代价;当迁移收益不低于迁移开销时,将短板任务集合中所述任务上的数据迁移至长板任务集合中的所述任务上。上述方案中,所述依据每个任务的相关信息,预测每个任务在第K超级步中的激活顶点数量,包括:所述任务的相关信息至少包括:任务的运行时间、激活顶点个数、总顶点个数、总边数;将任务负责处理的图数据的拓扑关系映射为相应的哈希Hash桶;确定每一任务的每一Hash桶中的相关信息;所述Hash桶的相关信息至少包括:每一Hash桶所包含相应任务的激活顶点数量、每一Hash桶的总顶点数量、及Hash桶之间交互的消息数量;利用Hash桶的相关信息,预测每一任务的每一Hash桶在第K超级步中的激活顶点的数量;获取属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和;确定属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和为该任务在第K超级步中的激活顶点的数量。上述方案中,所述依据每个任务在第K超级步的激活顶点数量,预测每个任务在第K超级步的运行时间,包括:获取所述相关信息中每个任务在第L超级步的运行时间、激活顶点数量;将每个任务在第L超级步的运行时间、激活顶点数量及为相应任务预测出的第K超级步的激活顶点数量代入至如下公式,得到每个任务在第K超级步的运行时间:TK=TLNumL×NumK]]>其中,TK为任务T在第K超级步的运行时间;TL表示任务T在第L超级步的运行时间;NumL表示任务T在第L超级步的激活顶点数量;NumK表示任务T在第K超级步的激活顶点数量。上述方案中,所述依据每个任务在第K超级步中的运行时间,确定短板任务集合和长板任务集合,包括:将所有任务按照预测出的第K超级步中的运行时间进行从大到小排序、或者进行从小到大排序;在已排序的任务中,依据盒图法筛选出运行较慢的任务和运行较快的任务;其中,所述短板任务集合为运行较慢的任务的集合;所述长板任务集合为运行较快的任务的集合。上述方案中,所述预测将短板任务集合中一任务上的数据迁移至长板任务集合中一任务上而产生的迁移收益及迁移代价,包括:当短板任务集合中的所述任务为任务d、长板任务集合中的所述任务为任务r时,预测当任务d采用出边单向转移机制时将预定出边迁移至任务r时而产生的迁移收益及迁移代价;进一步的,任务d采用出边单向转移机制向任务r迁移出边时,获取任务d与任务r的静态交互边数、任务d的总顶点数、预定的消息传送代价值;获取在任务r中备份的与所述出边对应的顶点的数量;获取剩余的超级步的数量;获取从任务d迁移至任务r的出边对应的源顶点数量的集合;将上述所获取的信息代入至如下公式,得到由任务d向任务r进行出边迁移的迁移收益E:E=(ed,rvd-1)×Δv×Tmsg×ω]]>其中,ed,r是任务d与任务r的静态交互边数;vd是任务d的总顶点数;Tmsg是单个消息传送的代价;ω是剩余的超级步的数量;△v为从任务d迁移至任务r的出边对应的源顶点数量的集合;所述迁移代价Cost为:Cost=Cost1+Cost2其中,Cost1为迁移路障同步的代价;Cost2为在任务r中备份所述出边对应的顶点的传输代价;相应的,当迁移收益不低于迁移代价时,通知短板任务集合中所述任务利用出边单向转移机制将相应的数据迁移至长板任务集合中的所述任务上,包括:确定短板任务集合中进行出边的所述任务与接收所述出边对应数据的长板任务集合中的所述任务为迁移任务对;当E≥Cost时,发送迁移命令至各任务,以使迁移任务对采用出边单向转移机制,进行出边的迁移及对与所述出边对应的顶点的备份。本发明实施例还提供了一种负载均衡系统,所述系统包括:第一获取单元,用于获取在第L超级步中每个任务的相关信息;第一预测单元,用于依据每个任务的相关信息,预测每个任务在第K超级步中的激活顶点数量;第二预测单元,用于依据每个任务在第K超级步的激活顶点数量,预测每个任务在第K超级步的运行时间;其中,L为大于等于1的正整数、K为大于L的正整数;第一确定单元,用于依据每个任务在第K超级步中的运行时间,确定短板任务集合和长板任务集合;第三预测单元,用于预测将短板任务集合中一任务上的数据迁移至长板任务集合中一任务上而产生的迁移收益及迁移代价;第一迁移单元,用于当迁移收益不低于迁移代价时,将短板任务集合中所述任务上的数据迁移至长板任务集合中的所述任务上。上述方案中,所述任务的相关信息至少包括:任务的运行时间、激活顶点个数、总顶点个数、总边数;所述第一预测单元,还用于将任务负责处理的图数据的拓扑关系映射为相应的哈希Hash桶;确定每一任务的每一Hash桶中的相关信息;所述Hash桶的相关信息至少包括:每一Hash桶所包含相应任务的激活顶点数量、每一Hash桶的总顶点数量、及Hash桶之间交互的消息数量;利用Hash桶的相关信息,预测每一任务的每一Hash桶在第K超级步中的激活顶点的数量;获取属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和;确定属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和为该任务在第K超级步中的激活顶点的数量。上述方案中,所述第二预测单元,用于获取所述相关信息中每个任务在第L超级步的运行时间、激活顶点数量;将每个任务在第L超级步的运行时间、激活顶点数量及为相应任务预测出的第K超级步的激活顶点数量代入至如下公式,得到每个任务在第K超级步的运行时间:TK=TLNumL×NumK]]>其中,TK为任务T在第K超级步的运行时间;TL表示任务T在第L超级步的运行时间;NumL表示任务T在第L超级步的激活顶点数量;NumK表示任务T在第K超级步的激活顶点数量。上述方案中,所述第一确定单元,用于将所有任务按照预测出的第K超级步中的运行时间进行从大到小排序、或者进行从小到大排序;在已排序的任务中,依据盒图法筛选出运行较慢的任务和运行较快的任务;其中,所述短板任务集合为运行较慢的任务的集合;所述长板任务集合为运行较快的任务的集合。上述方案中,所述第三预测单元,用于当短板任务集合中的所述任务为任务d、长板任务集合中的所述任务为任务r时,预测当任务d采用出边单向转移机制时将预定出边迁移至任务r时而产生的迁移收益及迁移代价;进一步的,所述第三预测单元,用于在任务d采用出边单向转移机制向任务r迁移出边时,获取任务d与任务r的静态交互边数、任务d的总顶点数、预定的消息传送代价值;获取在任务r中备份的与所述出边对应的顶点的数量;获取剩余的超级步的数量;获取从任务d迁移至任务r的出边对应的源顶点数量的集合;将上述所获取的信息代入至如下公式,得到由任务d向任务r进行出边迁移的迁移收益E:E=(ed,rvd-1)×Δv×Tmsg×ω]]>其中,ed,r是任务d与任务r的静态交互边数;vd是任务d的总顶点数;Tmsg是单个消息传送的代价;ω是剩余的超级步的数量;△v为从任务d迁移至任务r的出边对应的源顶点数量的集合;所述迁移代价为:Cost=Cost1+Cost2其中,Cost1为迁移路障同步的代价;Cost2为将任务d中的出边迁移至任务r时在任务r中备份所述迁移出边对应的顶点的传输代价;相应的,所述第一迁移单元,用于当E≥Cost时,通知短板任务集合中所述任务利用出边单向转移机制将相应的数据迁移至长板任务集合中的所述任务上;进一步的,确定短板任务集合中进行出边的所述任务与接收所述出边对应数据的长板任务集合中的所述任务为迁移任务对;当E≥Cost时,发送迁移命令至各任务,以使迁移任务对采用出边单向转移机制,进行出边的迁移及对与所述出边对应的顶点的备份。本发明实施例提供的负载均衡方法及系统,所述方法包括:获取在第L超级步中每个任务的相关信息;依据每个任务的相关信息,预测每个任务在第K超级步中的激活顶点数量;依据每个任务在第K超级步的激活顶点数量,预测每个任务在第K超级步的运行时间;其中,L为大于等于1的正整数、K为大于L的正整数;依据每个任务在第K超级步中的运行时间,确定短板任务集合和长板任务集合;预测将短板任务集合中一任务上的数据迁移至长板任务集合中一任务上而产生的迁移收益及迁移代价;当迁移收益不低于迁移代价时,将短板任务集合中所述任务上的数据迁移至长板任务集合中的所述任务上。利用本发明实施例,通过对迁移收益及代价的预测,决定是否进行边的迁移,使各任务的计算负载均衡,能够避免水桶效应,提高类Pregel处理系统的计算效率。附图说明图1为本发明实施例提供的负载均衡方法的流程示意图;;图2为本发明实施例提供的Hash桶之间的数据交互的一示意图;图3(a)、(b)为本发明实施例提供的出边单向转移机制的一示意图;图4(a)、(b)为本发明实施例提供的出边单向转移机制的另一示意图;图5为本发明实施例提供的负载均衡系统的组成示意图。具体实施方式以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。相关技术中,类Pregel处理系统可采用的负载均衡技术可包括:以任务为中心的动态负载均衡技术、以任务的数据块为中心的动态负载均衡技术及以任务的顶点为中心的动态负载均衡技术;这些负载均衡技术均未考虑到图数据之间的拓扑关系(即顶点之间的出边依赖关系),导致预测的准确度不高;此外,虽然从以任务中心到以顶点为中心,已进行了一定程度上的细化,但是细化粒度仍然过粗,使得图数据在迁移开销、路由维护等方面没有得到有效的减少。本发明实施例提供的负载均衡方法,应用于类Pregel处理系统,由于BSP模型采用主从架构即Master-Slave架构,所以本发明实施例可具体应用于主控端(Master端)。图1为本发明实施例提供的负载均衡方法的流程示意图;如图1所示,所述方法包括:步骤101:获取在第L超级步中每个任务的相关信息;这里,L为大于等于1的正整数,所述相关信息至少包括:任务的运行时间、激活顶点个数、总顶点个数、总边数。每个Slave端在第L超级步中将记录自身的运行时间、激活顶点个数、总顶点个数、总边数,并在系统全局同步时上报至Master端,Master端接收各Slave端上报的上述信息。步骤102:依据每个任务的相关信息,预测每个任务在第K超级步中的激活顶点数量;这里,K为大于等于L的正整数;K可以取值为L+G,G为迭代步长,G为大于等于1的正整数。普遍的,考虑到在类Pregel处理系统的迭代处理运算中,多个超级步是按照超级步的顺序进行运算,如计算完第5个超级步再计算第6个超级步,后再计算第7超级步,所以,优选的K=L+1(迭代步长为G=1)。当然,也可以选择K=L+2(迭代步长为G=2)、K=L+5(迭代步长为G=5),根据系统的实际处理能力而灵活设置G。本步骤的执行体为Master端。较佳的,预先将任务负责处理的图数据的拓扑关系映射为相应的哈希Hash桶数据;确定每一任务的每一Hash桶中所包含的该任务的激活顶点数量、每一Hash桶的总顶点数量、及桶之间交互的消息数量等Hash桶的相关信息;利用Hash桶的相关信息,预测每一任务的每一Hash桶在第K超级步中的激活顶点的数量;获取属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和;确定属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和为该任务在第K超级步中的激活顶点的数量。具体的,将任务负责处理的图数据的拓扑关系映射为相应的Hash桶数据,具体是将任务中的图定点数据按照顶点编号的Hash-Code值分配到对应的Hash桶中,如此便可将任务中的每个图顶点及其对应的出边数据分配至唯一的Hash桶中;每个Hash桶中均包括有相应任务一定数量的激活顶点及边,以通过Hash桶之间的数据交互来表征任务内或任务之间的图数据拓扑结构。图2为本发明实施例提供的哈希桶之间的数据交互的一示意图,如图2所示,任务Staff1中的图数据拓扑关系可以由Hash桶1和Hash桶2数据来表征,任务Staff2中的图数据拓扑关系可以由Hash桶3和Hash桶4数据来表征;任务Staff1与任务Staff2之间的数据通信就可以视为两个任务的Hash桶之间的数据交互。其中,每个Hash桶配置有一个全局标识,不同任务的Hash桶编号需不同。在将所有任务的图数据拓扑关系由Hash桶数据来表示后,Master端就可以知道某个任务中每一Hash桶的总顶点数量s、激活顶点数量q、桶之间交互的消息数量、桶之间的静态交互边数。通过计算q/s可以得到在第K超级步下划分的所有Hash桶中每一Hash桶的激活顶点的比例,集合该比例,得到一个1行N列的向量A:A=[a11,a12....a1N](1)其中,N为所有Hash桶的总数量,a1j(1≤j≤N)为全局编号为j的Hash桶的激活顶点的比例。当获知桶之间交互的消息数量后,就可以该消息数量集合为N行N列的矩阵P:P=p11p12...p1Np21p2N..........pn1....pNN---(2)]]>其中,矩阵P的某个元素pij代表着编号为i的Hash桶指向编号为j的Hash桶的边数,即编号为i的Hash桶与编号为j的Hash桶之间交互的消息数量。矩阵P可视为状态转移矩阵。将公式(1)与公式(2)进行相乘,得到1行N列的向量B,如公式(3)所示:B=A*P=[a11,a12....a1N]*p11p12...p1Np21p2N..........pn1....pNN=[b11,b12....b1N]---(3)]]>其中,向量B的某个元素b1j为编号为j的Hash桶收到的来自其他Hash桶及自身的消息的总数量。由于矩阵P为状态转移矩阵,公式(3)可视为基于马尔科夫Markov链的动态负载预测模型。在计算出编号为j的Hash桶收到的来自其他Hash桶及自身的消息的总数量b1j及编号为j的Hash桶的入边数量c之后,得到编号为j的Hash桶在第K超级步的激活顶点数量为c/sj*b1j;其中,sj为编号为j的Hash桶的总顶点数量。当某个任务包括的每一Hash桶在第K超级步的激活顶点数量计算出之后,将该任务包括的所有Hash桶的激活顶点数量进行求和,即得到该任务在第K超级步的激活顶点数量。为方便理解,举个具体的例子,结合图2,以预测Hash桶2在第K超级步中的激活顶点数量为例,其中,Hash桶2分别与Hash桶1、Hash桶3、Hash桶4进行数据交互,N=4。假定在第L=2超级步中,Hash桶1的激活顶点数量为3、总顶点数量为5,那么在向量A中的第1行第1列的元素a11=3/5;Hash桶1指向Hash桶2的边数为10,那么向量P中的第1行第2列的元素p12=10;如此类推,依据各个桶的顶点总数量、在第L=2超级步的激活顶点数量、桶之间的交互信息数量,就可以将向量A、矩阵P中的所有元素计算出来。然后用向量A乘以向量P,得到向量B,假定得到的向量B第1行第2列的元素b12=20,即Hash桶2接收到Hash桶1、Hash桶3、Hash桶4发送的消息及自身发送的消息的总数量为20,预先获知的Hash桶2的总顶点数量为10,入边数量为30,那么,Hash桶2在第K=3超级步的激活顶点数量为30/10*20=6(四舍五入),即预测出Hash桶2在第K=3超级步的激活顶点数量为6。按照上述计算Hash桶2在第K=3超级步的激活顶点数量的方法来计算Hash桶1在第K=3超级步的激活顶点数量,并将这两个激活顶点数量进行求和,即得到任务Staff1在第K=3超级步中的激活顶点数量。步骤103:依据每个任务在第K超级步的激活顶点数量,预测每个任务在第K超级步的运行时间;这里,Master端在获取到某个任务,如任务d在第K超级步的激活顶点数量后,依据如下公式(4)预测该任务在K超级步的运行时间TdK=TdLNumdL×NumdK---(4)]]>其中,为任务d在第K超级步的运行时间;表示任务d在第L超级步的运行时间,为Master端获知的参量;表示任务d在第L超级步的激活顶点数量,为Master端获知的参量;表示任务d在第K超级步的激活顶点数量,为根据前述步骤102而求出的。步骤104:依据每个任务在第K超级步中的运行时间,确定短板任务集合和长板任务集合;这里,所述短板任务集合为运行较慢的任务,所述长板任务集合为运行较快(负载较轻)的任务。进一步的,Master端将所有任务按照在第K超级步中的运行时间从大到小进行排序,或者从小到大进行排序,然后依据盒图法筛选出运行较慢的任务和运行较快的任务。其中,盒图法是根据五数概括绘制,是一种识别离群点的有用工具,在数据已经排好序的情况下,第一个四分位数记做Q1,是第25个百分位数;第三个四分位数记做Q3,是第75个百分位数。第一个和第三个四分位数之间的距离是分布的一种简单度量,它给出了被数据的中间一半所覆盖的范围,该距离称为中间四分位数极差(IQR),定义为IQR=Q3-Q1。盒图法识别离群点的常用经验是:挑出落在至少高于第三个四分位数或低于第一个四分位数1.5×IQR处的值。这里,举个例子,如果系统中共有100个任务,将这100个任务按照运行时间的大小进行排序形成一序列,那么依据所述常用经验,排在序列中的前25个任务为运行较快的任务,排在序列中的后25个任务为运行较慢的任务。步骤105:预测将短板任务集合中一任务上的数据迁移至长板任务集合中一任务上而产生的迁移收益及迁移代价;这里,在将短板任务集合中的任务d上的数据迁移至长板任务集合中的任务r上的过程中,Master端逐个提取出短板任务集合中的每一短板任务,将提取出的每一短板任务与负载较轻的任务进行迁移代价、迁移收益的计算,并依据迁移代价及迁移收益的大小关系,确定所述短板任务与所述负载较轻的任务是否为迁移任务对;为迁移任务对时,Master端通知相应的迁移任务对进行负载数据的迁移。在进行负载数据的迁移时,所采用的迁移机制为出边单向转移机制,即在系统的整个迭代过程中,任务d的同一条出边仅单向调整一次。图3(a)、(b)为本发明实施例提供的出边单向转移机制的一示意图,结合图3(a)、(b),假如在没有进行出边调整前任务d与任务r的交互示意图如图3(a)所示,经前述步骤101~104而得出,任务d为运行较慢的任务,任务r为运行较快的任务,出边调整后任务d与任务r的交互示意图如图3(b)所示。在没有进行出边调整前,任务d所包括的顶点为顶点5和顶点6,任务r所包括的顶点为顶点1~4;其中,顶点6与顶点2、顶点3分别进行通信,即顶点6与顶点2之间有一条连接边(出边)、顶点6与顶点3之间有一条连接边(出边)。由于任务d中的顶点6与任务r中的两个顶点均具有通信关系,所以通过在任务r中备份顶点6的方式将顶点6与顶点2之间的通信连接、顶点6与顶点3之间的通信连接迁移至任务r的本地,负载发生了迁移;在迁移之后,任务d中的顶点6仅需要通知任务r中的顶点6的顶点属性值,如此一来,经出边调整后,任务i的顶点6与任务j的交互边削减为1条,减少了迁移开销及通信开销。其中,顶点6称之为高出度节点,出边迁移本质上是消息生成负载的迁移,而高入度顶点的存在会造成消息生成与处理负载均发生偏斜,所以也需要在迁出数据的任务中备份高入度顶点。图4(a)为没有进行高入度顶点备份时,任务d中的顶点4、5均与任务w中的顶点7存在有连接边,在这种情况下,为减少这两个任务之间的通信开销,将顶点7备份在任务d中,以在任务d的本地实现顶点7与顶点5、顶点7与顶点6的数据交互。图4(b)为进行高入度顶点备份时,任务d的顶点6与任务w的交互边削减为1条,减少了迁移开销及通信开销。其中,本实施例的出边的含义请参见现有相关说明,这里不再赘述。假设,短板任务d,预备接收任务d迁移出的数据的任务r,如果从任务d中选取△v个顶点备份到任务r上,即单向转移这△v个顶点的出边至任务r,根据如下公式(5)计算由任务d向任务r进行数据迁移的迁移收益E:E=(ed,rvd-1)×Δv×Tmsg×ω---(5)]]>其中,ed,r是任务d与任务r的静态交互边数,为已获知的参量;vd是任务d的总顶点数;Tmsg是单个消息传送的代价,当网络集群确定后此参量为固定值;ω是剩余的超级步的数量,系统中总的超级步的数量可自行设定;△v为从任务d迁移至任务r的出边对应的源顶点数量的集合,即在任务r中需要备份的顶点的数量;其中,从任务d迁移出的任务r的边叫做出边,其顶点包括源顶点和目的顶点,当出边迁移至任务r中时,出边的源顶点需要在任务r中作备份。将静态交互边数除以任务d的总顶点数为没有进行出边迁移的任务d下每个顶点与任务r的交互边数,通过出边的单向转移,任务d内这△v个顶点每个顶点与任务r的交互边都削减为1条,因此任务d与任务r之间的通信量减少了(ed,r/vr-1)×△v条,再乘以单个消息的传送代价和剩余超级步数w,即为边数据的迁移收益。数据迁移代价公式如公式(6)所示:Cost=Cost1+Cost2(6)其中,Cost1为迁移路障同步的代价,可以用BSP路障同步代价来预估,该信息可通过对BSP路障同步时间的采集而得到;备份顶点的传输代价可以通过消息传送的时间代价来预估,用Cost2=Tmsg×△v表示。步骤106:当迁移收益不低于迁移代价时,将短板任务集合中所述任务上的数据迁移至长板任务集合中的所述任务上。这里,当E≥Cost1+Cost2时,即预测出的任务d迁移数据至任务r处而带来的迁移收益不低于迁移代价时,任务d与任务r可视为一迁移任务对,可进行任务d至任务r的数据迁移;如果E<Cost1+Cost2,则在短板任务集合中再提取一个短板任务(运行时间慢的任务)作为任务d,与任务r继续进行如上所述,以此类推,找到与每个短板任务能够作为迁移任务对的长板任务d。在确定出迁移任务对之后,利用出边单向转移机制,在某个短板任务中,找出与长板任务具有较多的出边如与长板任务连接的出边大于等于第一预定阈值如5的顶点,备份该顶点至该长板任务中,以在长板任务本地实现该顶点与该长板任务中的至少一个顶点的数据交互。具体请参见前述的对图3(a)、(b)与图4(a)、(b)的描述,在这几个图中,第一预定阈值均取值为2,所述第一预定阈值可以依据实际使用情况而灵活设置。采用出边单向转移机制,将运行较慢的任务中的数据迁移至运行较快的任务中去,以实现更好的迁移路障同步。在确定出迁移任务对之后,Master端发送迁移命令至各任务,以使迁移任务对采用出边单向转移机制,进行出边的迁移及对与所述出边对应的顶点的备份,以使得相应的迁移任务对进行负载的迁移及接收。具体的,在Master端预先创建一个迁移计划的三元组集合MigratePlan,MigratePlan中包括有三个元素,分别是迁出数据的任务标识fromStaffID、接收数据的任务标识toStaffID、及迁出数据所隶属的Hash桶的全局标识bucketID,即MigratePlan=<fromStaffID,toStaffID,bucketID>,每成功确定出一个迁移任务对,就将迁移任务对中需要迁出数据的任务标识、接收数据的任务标识及Hash桶的全局标识添加至该三元组集合中去;各任务在接收到Master端的迁移命令后,依据该三元组集合判断自身是否需要进行数据迁出和/或数据接收,如果需要则在接收到迁移命令后,采用出边单向转移机制,进行相应的数据迁出和/或接收工作,并完成迁移同步路障;若不需要则进入迁移同步路障阶段,至此第L超级步的迭代工作完成,需要进行下一超级步。本发明实施例的优势:(1)基于马尔科夫Markov链的动态负载预测模型,根据图数据之间的拓扑关系以及第L超级步的任务的相关信息,预测后续超级步中各个任务的激活顶点数量,依据激活顶点数量预测每个任务的运行时间,从而实现了将负载从运行时间慢的任务迁移至运行时间快的任务,实现了负载的均衡性,降低了水桶效应;(2)以边为中心的单向转移机制,通过出边的定向迁移,实现了细粒度的负载迁移,精确控制负载的均衡性,有效降低了迁移开销;(3)通过对出边对应顶点的备份,实现了在负载较轻的任务本地实现该备份顶点与该任务中的相应顶点的数据通信,显著减少了迭代计算中的网络通信开销,且在保持低迁移开销的前提下不会改变顶点在任务之间的分配,避免了复杂的路由维护操作。基于上述负载均衡方法,本发明实施例还提供了一种负载均衡系统,如图5所示,所述系统包括:第一获取单元501、第一预测单元502、第二预测单元503、第一确定单元504、第三预测单元505及第一迁移单元506;其中,第一获取单元501,用于获取在第L超级步中每个任务的相关信息;第一预测单元502,用于依据每个任务的相关信息,预测每个任务在第K超级步中的激活顶点数量;第二预测单元503,用于依据每个任务在第K超级步的激活顶点数量,预测每个任务在第K超级步的运行时间;其中,L为大于等于1的正整数、K为大于L的正整数;第一确定单元504,用于依据每个任务在第K超级步中的运行时间,确定短板任务集合和长板任务集合;第三预测单元505,用于预测将短板任务集合中一任务上的数据迁移至长板任务集合中一任务上而产生的迁移收益及迁移代价;第一迁移单元506,用于当迁移收益不低于迁移代价时,将短板任务集合中所述任务上的数据迁移至长板任务集合中的所述任务上。其中,所述任务的相关信息至少包括:任务的运行时间、激活顶点个数、总顶点个数、总边数;相应的,所述第一预测单元502,还用于将任务负责处理的图数据的拓扑关系映射为相应的Hash桶;确定每一任务的每一Hash桶中的相关信息;所述Hash桶的相关信息至少包括:每一Hash桶所包含相应任务的激活顶点数量、每一Hash桶的总顶点数量、及Hash桶之间交互的消息数量;利用Hash桶的相关信息,预测每一任务的每一Hash桶在第K超级步中的激活顶点的数量;获取属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和;确定属于同一个任务的所有Hash桶在第K超级步中的激活顶点的数量之和为该任务在第K超级步中的激活顶点的数量。所述第二预测单元503,用于获取所述相关信息中每个任务在第L超级步的运行时间、激活顶点数量;将每个任务在第L超级步的运行时间、激活顶点数量及为相应任务预测出的第K超级步的激活顶点数量代入至前述公式(4),得到每个任务在第K超级步的运行时间。所述第一确定单元504,用于将所有任务按照预测出的第K超级步中的运行时间进行从大到小排序、或者进行从小到大排序;在已排序的任务中,依据盒图法筛选出运行较慢的任务和运行较快的任务;其中,所述短板任务集合为运行较慢的任务的集合;所述长板任务集合为运行较快的任务的集合。所述第三预测单元505,用于当短板任务集合中的所述任务为任务d、长板任务集合中的所述任务为任务r时,预测当任务d采用出边单向转移机制时将预定出边迁移至任务r时而产生的迁移收益及迁移代价;进一步的,所述第三预测单元505,用于在任务d采用出边单向转移机制向任务r迁移出边时,获取任务d与任务r的静态交互边数、任务d的总顶点数、预定的消息传送代价值;获取在任务r中备份的与所述出边对应的顶点的数量;获取剩余的超级步的数量;获取从任务d迁移至任务r的出边对应的源顶点数量的集合;将上述所获取的信息代入至前述公式(5),得到由任务d向任务r进行出边迁移的迁移收益E。所述迁移代价为参见公式(6)及其说明。相应的,所述第一迁移单元506,用于当E≥Cost时,通知短板任务集合中所述任务利用出边单向转移机制将相应的数据迁移至长板任务集合中的所述任务上;进一步的,用于确定短板任务集合中进行出边的所述任务与接收所述出边对应数据的长板任务集合中的所述任务为迁移任务对;当E≥Cost时,发送迁移命令至各任务,以使迁移任务对采用出边单向转移机制,进行出边的迁移及对与所述出边对应的顶点的备份。由于该负载均衡系统所解决问题的原理与负载均衡方法相似,因此,负载均衡系统的实施过程及实施原理均可以参见前述负载均衡方法的实施过程及实施原理描述,重复之处不再赘述。本领域技术人员应当理解,图5中所示的负载均衡系统中的各处理模块的实现功能可参照前述负载均衡方法的相关描述而理解。本领域技术人员应当理解,图5所示的负载均衡系统中各处理单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1