掌桥专利:专业的专利平台
掌桥专利
首页

一种基于负载感知的数据流动态负载均衡策略分析方法

文献发布时间:2023-06-19 10:54:12


一种基于负载感知的数据流动态负载均衡策略分析方法

技术领域

本发明涉及负载均衡技术领域,特别涉及一种基于负载感知的数据流动态负载均衡策略分析方法。

背景技术

在分布式计算环境下,负载均衡策略的依据是计算节点的资源利用率,通过将资源利用率过高节点的计算负载迁移到资源利用率较低的节点中,从而实现节点间负载的均衡。

一个节点的可用资源包括CPU、内存、磁盘I/O、网络传输等,而现有研究成果多将CPU或内存利用率等单一指标作为性能评估依据。事实上,节点中任何一种资源的匮乏都会成为节点响应能力的瓶颈,导致数据元组在内存中被滞留而计算延迟加长。因此,任何单一的性能评估指标在实际应用中都存在局限性。

发明内容

为解决上述问题,本发明提供了一种基于负载感知的数据流动态负载均衡策略分析方法。

本发明采用以下技术方案:

一种基于负载感知的数据流动态负载均衡策略分析方法,包括如下步骤:

S1、获取数据元组经过每个节点的延迟时间;

S2、计算最大延迟和延迟方差,并与设定的阈值比较从而判定节点负载情况;

S3、将数据元组映射为数据块,并根据数据块的大小形成小顶堆结构;

S4、利用负载迁移算法进行负载迁移,直到均衡为止。

进一步地,步骤S1具体为:通过深度优先搜索算法遍历整个节点拓扑,为每个节点的不同访问状态标记不同颜色,并记录每个节点状态改变的时间戳;所述时间戳包括发现时间和完成时间;所述延迟时间等于所述完成时间和所述发现时间的差。

进一步地,所述发现时间是节点收到数据元组的时间;所述完成时间是节点发出的数据元组完成所有计算并到达汇点的时间,即一条路径的完成时间。

进一步地,所述设定的阈值为极大延迟θ和极大方差ε,设某一节点O

max

其中,w(O

进一步地,所述延迟方差

进一步地,将延迟检测得到的最大延迟max

当max

当max

当max

进一步地,所述极大延迟θ的取值范围为1-20毫秒。

进一步地,步骤S3中所述将数据元组映射为数据块时采用哈希映射法,具体的:设节点O

其中,i是数据块的编号,O

进一步地,步骤S3中所述根据数据块的大小形成小顶堆结构,具体为:所有数据块按照数据块的大小构成小顶堆,堆顶元素为所有数据块中数据量最小的,当堆顶元素被迁出或有新元素迁入时,由节点自动调整堆结构,保证堆顶元素始终是剩余元素中数据量最小的。

进一步地,对于步骤S4中所述负载迁移,当需要从O

S41、对节点O

S42、从迁出节点O

S43、修改节点O

S44、返回执行步骤S42,将节点O

S45、恢复O

采用上述技术方案后,本发明与背景技术相比,具有如下优点:

1、依据节点处理元组的延迟时间评估节点的性能,综合体现节点负载和响应能力,以克服单一性能评估指标存在的局限性;

2、利用基于有向无环图的深度优先搜索的负载感知算法,用于检测节点的计算延迟时间,每个计算节点都能获取其后继的负载信息,为路由决策提供支持;

3、采用流式数据分块管理,通过小顶堆结构管理数据块,实现有状态的流式计算的分块负载迁移。

附图说明

图1为本发明的方法流程示意图;

图2为计算延迟检测结果图;

图3为流式计算AOE-网拓扑图;

图4为数据块小顶堆结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

如图1所示,一种基于负载感知的数据流动态负载均衡策略分析方法,包括如下步骤:

S1、获取数据元组经过每个节点的延迟时间;

步骤S1具体为:通过深度优先搜索算法遍历整个节点拓扑,为每个节点的不同访问状态标记不同颜色,并记录每个节点状态改变的时间戳;所述时间戳包括发现时间和完成时间;所述延迟时间等于所述完成时间和所述发现时间的差。

所述发现时间是节点收到数据元组的时间;所述完成时间是节点发出的数据元组完成所有计算并到达汇点的时间,即一条路径的完成时间。

计算延迟是反映节点负载和响应能力的综合体现,延迟越长,说明节点负载越高、响应能力越弱;反之则说明节点有充足的剩余计算资源。

在进行深度优先搜索算法(DFS-Visit)之前,需要先进行初始化操作,也就是将所有节点的访问状态标记为白色,节点的发现时间和完成时间都记为空,然后从源点开始进行深度优先搜索。

具体地,初始状态下所有节点都标记为白色,表示节点未被访问过;当节点被首次发现后标记为灰色,并记录当前时间为节点的发现时间;当节点的所有后继都被访问完成且数据到达汇点后,该节点被标记为黑色,表示已完成对该节点对应所有路由的检测,同时记录当前时间为节点的完成时间。

这里,数据源点的发现时间是其发出数据元组的时间,完成时间是集群中每个节点都完成一次计算的时间;而汇点不对数据进行处理且没有后继,其发现时间与完成时间相等,都是其收到数据元组的时间。

这里的深度优先搜索算法依次检查当前待访问节点的所有后继,并从所有白色节点向后深度优先搜索,且算法认为所有非白色后继节点均为黑色,可直接获取其上一次搜索中保存的发现和完成时间,并延长当前节点的完成时间,这样也就保证了算法的正确性以及每个节点仅仅被访问一次,有且仅有一组发现和完成时间,保证负载感知一致性并减少递归调用的次数,降低算法的时间复杂度,提高效率。

当深度优先搜索算法完成后,整个集群完成对节点计算延迟的检测并获得检测结果,每个节点O

S2、计算最大延迟和延迟方差,并与设定的阈值比较从而判定节点负载情况;

通过深度优先搜索的延迟检测算法,获取了每条路径的计算延迟,On.f-On.d是节点O

如图3所示,在数据流AOE-网中,每个节点代表对应算子的物理映射,弧代表对应的数据流向,弧的权值代表对应弧头节点的计算延迟,记为:

w(O

其中,O

所述设定的阈值为极大延迟θ和极大方差ε,设某一节点O

max

其中,w(O

所述延迟方差

将延迟检测得到的最大延迟max

当max

当max

当max

本实施例中,所述极大延迟θ的取值为10毫秒。

部分参数的取值对算法的执行效果有影响:θ和ε是由用户设定的两个参数值,也是启动负载迁移算法的阈值,它们共同决定了负载感知算法的敏感程度,决定了负载感知算法的敏感程度,阈值过小会导致算法过于敏感,负载迁移过于频繁甚至出现迁移抖动的现象,阈值过大会导致算法过于迟钝,造成数据元组被阻塞,使下一次负载迁移产生较大的时空代价。因此参数的取值对算法的执行效果至关重要。

S3、将数据元组映射为数据块,并根据数据块的大小形成小顶堆结构;

负载均衡策略的目标是通过将计算延迟过长节点的负载迁移到计算延迟较短的节点中去,即把负载过高节点的计算负载迁移到负载较低的节点中去,从而实现节点间的负载均衡。为了能够控制和改变数据元组的路由,将节点的输出数据分为不同的“块”,并使用堆结构管理这些数据块,实现有状态流式计算的负载迁移技术,同时兼容Flink的状态管理机制。

流式数据的分块机制是由计算节点对每个待输出的数据元组执行两次映射来确定对应的目标节点:节点先通过元组key的Hash值确定对应的数据块,再通过数据块的记录找到对应的目标节点并输出元组。

步骤S3中所述将数据元组映射为数据块时采用哈希映射法,具体的:设节点O

其中,i是数据块的编号,O

其中,所述哈希映射法为:i=[Hash(key)mod k]+1;则该元组对应的数据块为block

一般认为,在有状态的流式计算中数据块保存的状态数据大小与处理过的数据量正相关,且迁移大数据块产生的开销较大,因此节点总是希望迁移数据量最小的块以降低负载迁移的代价。如图4所示,节点用堆管理数据块,即所有数据块按照block.size的大小构成小顶堆,堆顶元素为所有数据块中数据量最小的。当堆顶元素被迁出或有新元素迁入时,由节点自动调整堆结构,保证堆顶元素始终是剩余元素中数据量最小的。

这样每次发生负载迁移时都迁出堆顶的数据块,以降低负载迁移的开销同时避免发生迁移抖动。

S4、利用负载迁移算法进行负载迁移,直到均衡为止。

对于步骤S4中所述负载迁移,当需要从O

S41、对节点O

S42、从迁出节点O

S43、修改节点O

S44、返回执行步骤S42,将节点O

S45、恢复O

数据流计算中节点间的高效负载迁移任务通过以上步骤完成。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

相关技术
  • 一种基于负载感知的数据流动态负载均衡策略分析方法
  • 基于租户感知的动态负载均衡方法及系统
技术分类

06120112722985