基于算子作用域动态感知的弹性资源分配方法及装置制造方法及图纸

技术编号:34838115 阅读:15 留言:0更新日期:2022-09-08 07:33
本发明专利技术公开了一种基于算子作用域动态感知的弹性资源分配方法及装置。所述方法包括:构建数据流处理应用的有向无环图,所述有向无环图中的节点表示处理数据流的算子,边表示数据流;根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,自适应地将有向无环图进行分区。预测每个分区未来一段时间的负载;针对每个所述分区中的各算子,基于所述负载生成相应数量的算子实例,以对所述接收数据进行实时处理,满足服务质量要求。本发明专利技术以分区为单位规划算子的并行性,从而保证端到端处理延迟,提升资源利用率。提升资源利用率。提升资源利用率。

【技术实现步骤摘要】
基于算子作用域动态感知的弹性资源分配方法及装置


[0001]本专利技术涉及数据流处理领域,具体为一种基于算子作用域动态感知的弹性资源分配方法及装置。

技术介绍

[0002]在分布式流处理系统(以下简称DSPSs)中,数据流处理应用(以下简称DSPAs)通常建模成有向无环图(DAG),图中的点表示处理数据流的算子,边表示数据流。上游算子处理完数据流后发送给下游算子。上游算子的负载和并行度发生变化,下游算子的负载和并行度也很有可能会发生变化。
[0003]原方法在进行资源分配时只考虑DAG图中的单个算子或者算子之间的静态相关性,忽略了DAG图中算子之间的动态相关性,导致资源分配滞后、不准确,增加数据处理延迟。为了解决该问题,利用算子的动态作用域评估算子之间的动态相关性,实现弹性资源分配。

技术实现思路

[0004]针对上述问题,本专利技术提供一种基于算子作用域动态感知的弹性资源分配方法及装置,所述方法以分区为单位规划算子的并行性,从而保证端到端处理延迟,提升资源利用率。
[0005]为实现上述目的,本专利技术采用如下技术方案:
[0006]一种基于算子作用域动态感知的弹性资源分配方法,其步骤包括:
[0007]构建数据流处理应用的有向无环图,所述有向无环图中的节点表示处理数据流的算子,边表示数据流;
[0008]根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,自适应地将有向无环图进行分区。
[0009]预测每个分区未来一段时间的负载;r/>[0010]针对每个所述分区中的各算子,基于所述负载生成相应数量的算子实例,以对所述接收数据进行实时处理,满足服务质量要求。
[0011]进一步地,所述根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,自适应地将DAG图进行分区,包括:
[0012]根据算子的处理逻辑进行理论上输出速率与总输入速率的比值推断,得到静态筛选率;
[0013]收集动态筛选率指标;
[0014]在启动阶段,根据所述静态筛选率将算子分成初始稳定算子集合与初始不稳定算子集合;
[0015]将初始不稳定算子集合中算子的下游算子的所有输入边截断,并将所有相连的子图聚合,得到所述有向无环图的初始分区;
[0016]在运行阶段,根据所述动态筛选率指标更新稳定集合和不稳定集合,以再次进行所述有向无环图的分区。
[0017]进一步地,所述在线预测每个分区未来一段时间的负载,包括:
[0018]构建训练数据集,所述训练数据集为每个分区的历史输入数据负载;
[0019]基于所述训练数据集对元学习模型进行学习,得到每一分区的在线负载预测模型,其中,所述元学习模型包括:MLP基础学习器和LSTM元学习器;
[0020]将所述历史负载输入在线负载预测模型,得到所述未来一段时间的负载。
[0021]进一步地,所述基于所述训练数据集对元学习模型进行学习,包括:
[0022]将所述历史输入数据负载输入所述MLP基础学习器;
[0023]所述MLP基础学习器按损失函数和损失函数的梯度,输入到LSTM元学习器中用于更新所述LSTM元学习器细胞状态;
[0024]LSTM元学习器更新MLP基础学习器的初始值。
[0025]进一步地,所述针对每个所述分区中的各算子,基于所述负载生成相应数量的算子实例,以对所述接收数据进行处理,满足服务质量要求,包括:
[0026]收集每个分区的负载指标和每个分区中满足负载处理要求算子的并行度指标;
[0027]基于所述负载指标与并行度指标进行有监督的机器学习,得到每一分区的算子并行度规划模型;
[0028]将所述负载输入所述算子并行度规划模型,得到所述分区中每一算子的算子实例数量,以对所述接收数据进行实时处理,满足服务质量要求。
[0029]进一步地,所述机器学习的方法包括:随机森林。
[0030]一种基于算子作用域动态感知的弹性资源分配装置,包括:
[0031]图构建模块,用于构建数据流处理应用的有向无环图,所述有向无环图中的节点表示处理数据流的算子,边表示数据流;
[0032]自适应算子分区模块,根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,自适应地将DAG图进行分区;
[0033]在线负载预测模块,用于预测每个分区未来一段时间的负载;
[0034]算子并行度规划模块,用于针对每个所述分区中的各算子,基于所述负载生成相应数量的算子实例,以对所述接收数据进行实时处理,满足服务质量要求。
[0035]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于动态资源分配的数据流处理方法。
[0036]一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行,以实现上述基于动态资源分配的数据流处理方法。
[0037]一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得计算机设备执行如上述基于动态资源分配的数据流处理方法。
[0038]与现有技术相比,本专利技术至少具有以下优点:
[0039]1、通过动态地提前调整算子并行性,保证端到端处理延迟,提升资源利用率;
[0040]2、利用算子间的动态相关性进行资源分配:使用静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,来自适应地将DSPA划分为多个分区,并以分区为单位规
划算子的并行性。
[0041]3、在线建模每个分区内算子间的动态相关性:对于每个分区的输入负载,计算该分区中每个算子的最佳并行性,并动态更新。
[0042]4、实时在线预测负载:我们使用元学习方法在线预测每个分区的负载。将强表达性长短时记忆网络(LSTM)元学习器和高效的多层感知器(MLP)基学习器结合起来,实时捕捉数据流的波动特征。
附图说明
[0043]图1本专利技术的架构图。
[0044]图2本专利技术的方法流程图。
具体实施方式
[0045]为使本专利技术的上述特征和优点能更明显易懂,下面通过具体实施例,对本专利技术的技术方案做进一步说明。
[0046]如图1所示,本专利技术由三个核心模块组成:在线负载预测模型、自适应算子分区模型和基于分区的算子并行度规划模型。使用自适应算子分区模型基于算子的动态作用域在线对 DAG图进行分区,使用在线负载预测模型在线预测每个分区的负载来实现主动的弹性资源分配,使用算子并行度规划模型确定每个分区中算子的最佳平行度。
[0047]在处理数据流时,首先使用指标收集器收集理论上不稳定算子的动态筛选率统计指标、每个分区的负载指标和每个分区中满足负载处理要求算子的并行度指标,并将其存储在指标数据库中。其次,自适应算子分区模型根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于算子作用域动态感知的弹性资源分配方法,其步骤包括:构建数据流处理应用的有向无环图,所述有向无环图中的节点表示处理数据流的算子,边表示数据流;根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,自适应地将有向无环图进行分区。预测每个分区未来一段时间的负载;针对每个所述分区中的各算子,基于所述负载生成相应数量的算子实例,以对所述接收数据进行实时处理,满足服务质量要求。2.如权利要求1所述的方法,其特征在于,所述根据算子的静态筛选率指标和动态筛选率统计指标来评估上游算子的作用域,自适应地将DAG图进行分区,包括:根据算子的处理逻辑进行理论上输出速率与总输入速率的比值推断,得到静态筛选率;收集动态筛选率指标;在启动阶段,根据所述静态筛选率将算子分成初始稳定算子集合与初始不稳定算子集合;将初始不稳定算子集合中算子的下游算子的所有输入边截断,并将所有相连的子图聚合,得到所述有向无环图的初始分区;在运行阶段,根据所述动态筛选率指标更新稳定集合和不稳定集合,以再次进行所述有向无环图的分区。3.如权利要求1所述的方法,其特征在于,所述在线预测每个分区未来一段时间的负载,包括:构建训练数据集,所述训练数据集为每个分区的历史输入数据负载;基于所述训练数据集对元学习模型进行学习,得到每一分区的在线负载预测模型,其中,所述元学习模型包括:MLP基础学习器和LSTM元学习器;将所述历史负载输入在线负载预测模型,得到所述未来一段时间的负载。4.如权利要求3所述的方法,其特征在于,所述基于所述训练数据集对元学习模型进行学习,包括:将所述历史输入数据负载输入所述MLP基础学习器;所述MLP基础学习器按损失函数和损失函数的梯度,输入到LSTM元学习器中用于更新所述LSTM元学习器细胞状态;LST...

【专利技术属性】
技术研发人员:刘帆朱蔚林木伟民张云李名扬王伟平
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1