当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于乐观容错方法的迭代器技术

技术编号:23342990 阅读:20 留言:0更新日期:2020-02-15 03:46
本发明专利技术公开一种基于乐观容错方法的迭代器,属于大数据环境下的分布式迭代计算技术领域,该迭代器包括增量迭代器和批量迭代器,综合考虑了不同大小的迭代任务和不同故障率的迭代计算任务,引入一个补偿函数,系统使用该函数重新初始化丢失的分区。发生故障时,系统暂停当前迭代,忽略失败的任务,并将丢失的计算重新分配给新获取的节点,调用分区上的补偿函数以恢复一致状态并恢复执行。对于故障频率较低的情况,大大减少了计算的延迟,提高了迭代处理效率。对于故障频率较高的情况,该迭代器可以保证迭代处理效率不低于优化前的迭代器。该乐观容错迭代器不用添加任务额外的操作,有效降低了容错开销。

An iterator based on optimistic fault tolerance method

【技术实现步骤摘要】
一种基于乐观容错方法的迭代器
本专利技术涉及大数据环境下的分布式迭代计算
,尤其涉及一种基于乐观容错方法的迭代器。
技术介绍
随着互联网技术的快速发展,对海量数据的迭代处理与分析具有巨大的应用价值。伴随分布式系统的计算节点的不断增加,故障率也随之提升。迭代器的设计和容错方法的设计是制约计算效率的主要瓶颈之一,是不可忽略的关键技术。在现有技术中,迭代器在处理批量任务时,如果某台节点发生故障或者某个任务失败时,系统会根据文件可以重复访问的特性,重新启动该迭代任务。在处理流计算任务时,基于分布式快照和部分可重发的数据源实现了容错,当任务出现失败时,系统将整个Job恢复到最近一次快照的状态,并从数据源重发快照之后的数据。如果故障经常发生,这种悲观的方法很有效。然而,现实的用例表明,许多计算不会运行这么长时间或者在很多节点上运行失败变得司空见惯。在频率较低的情况下,检查点可能不必要地增加计算的延迟。因此,现有的迭代器在任务量较小或任务发生故障概率较低的情况下,检查点会带来较大的额外开销,影响了真正的迭代计算效率。此外,现有的迭代器中仅采用了悲观的容错策略,没有给出综合考虑迭代任务量大小以及任务故障率的容错方案。
技术实现思路
针对上述现有技术的不足,提供一种基于乐观容错方法的迭代器。为解决上述技术问题,本专利技术所采取的技术方案是:一种基于乐观容错方法的迭代器,包括:增量迭代器和批量迭代器;所述增量迭代器由迭代算子DeltaIterateOperator实现,所述批量迭代器由迭代算子IterateOperator实现;所述迭代算子DeltaIterateOperator和迭代算子IterateOperator共同包括:初始迭代输入IterateInput、迭代函数StepFunction、迭代结果IterationResult、迭代终止条件Termination、乐观的补偿函数CompensateFunction;所述迭代算子DeltaIterateOperator还包括迭代输出NextWorkset/UpdateSolutionSet,所述迭代算子IterateOperator还包括迭代输出NextPartialSolution;所述初始迭代输入IterateInput包括:工作集WorkSet和解集SolutionSet,迭代输入的数据来自于数据源DataSource或者来自于上一级算子PreviousOperator的输出。所述迭代函数StepFunction包括Map、FlatMap、Reduce、Join、Distinct、Aggregate、Union和Filter算子,根据迭代任务和场景选择其中一种算子作为步函数,用于在迭代过程中更新输入的数据集。所述迭代结果IterationResult用于存储迭代终止时的输出,写入到DataSink中。所述迭代终止条件Termination包括三种形式:(1)默认终止条件:空工作集收敛标准EmptyWorkSetConvergenceCriterion;(2)设置最大迭代次数,在没有其他迭代终止条件时,将在达到设置的最大迭代次数时结束迭代操作;(3)自定义收敛条件AggregatorConvergence,可以根据需要实现自定义收敛;所述迭代算子DeltaIterateOperator选择迭代终止条件Termination(1)、(2)、(3)中的任意一种作为终止条件;所述迭代算子IterateOperator选择迭代终止条件Termination(2)、(3)中的任意一种作为终止条件。所述乐观的补偿函数CompensateFunction包括Map、FlatMap和Reduce算子,根据需求选择其中一个算子进行乐观的补偿,用于恢复丢失分区的数据。所述迭代输出NextWorkset/UpdateSolutionSet用于存储每一轮迭代时更新的权利要求2所述的工作集WorkSet和解集SolutionSet,作为下一轮迭代的输入;所述迭代输出NextPartialSolution用于在每一轮迭代时更新的权利要求2所述的工作集WorkSet,作为下一轮迭代的输入。所述增量迭代器的迭代过程如下:步骤1:获取迭代的终止条件Termination;获取设置的最大迭代次数、空工作集收敛标准EmptyWorkSetConvergenceCriterion或者自定义收敛条件AggregatorConvergence;步骤2:获取初始迭代输入,获取满足迭代处理格式的数据集作为迭代输入;当前迭代次数为0,确定迭代输入为初始迭代输入IterateInput,读取初始工作集WorkSet和初始解集SolutionSet作为迭代输入;步骤3:更新迭代次数,选择Map、FlatMap、Reduce、Join、Distinct、Aggregate、Union和Filter算子中的一种,更新工作集WorkSet和解集SolutionSet;步骤3.1:迭代次数加1;步骤3.2:工作集WorkSet的更新,选择Map、FlatMap、Reduce、Join、Distinct、Aggregate、Union和Filter算子中的一种对工作集进行更新;步骤3.3:解集SolutionSet的更新,选择Map、FlatMap、Reduce、Join、Distinct、Aggregate、Union和Filter算子中的一种对解集进行更新并隐式转发,采用广播的方式将每个节点上更新完的解集进行同步,保证不同节点上数据的一致性。步骤4:通过捕获系统异常来判断迭代过程中是否发生故障,如果发生故障则使用乐观补偿函数对丢失的数据进行恢复,再执行步骤5,如果没有发生故障则直接执行步骤5;步骤4.1:采用Map、FlatMap和Reduce算子中的一种对初始解集丢失的数据进行统计收集;步骤4.2:使用初始的工作集对丢失的数据进行补偿恢复,使得丢失的数据恢复至初始状态。步骤5:判断迭代次数是否满足迭代终止条件Termination,如果不满足则重复执行步骤3,如果满足则执行步骤6;步骤6:获取迭代结果,将结果写入DataSink中;所述批量迭代器的迭代过程同增量迭代器的步骤1至步骤6,所述步骤3中不再更新解集SolutionSet。采用上述技术方案所产生的有益效果在于:1、本专利技术公开了一种综合考虑不同大小的迭代任务和不同故障率的迭代计算任务的乐观容错迭代器,能够使得迭代器在各种情况下都以相对较低的额外开销完成迭代计算。2、本专利技术引入了一个自定义的补偿函数,系统使用该函数重新初始化丢失的分区。此函数恢复算法可以收敛到一致状态。这种方法提供了最佳的无故障性能。发生故障时,系统会暂停当前迭代,忽略失败的任务,并将丢失的计算重新分配给新获取的节点。系统会调用分区上的补偿函数以恢复一致状态并恢复执行。补偿本文档来自技高网...

【技术保护点】
1.一种基于乐观容错方法的迭代器,其特征在于包括:增量迭代器和批量迭代器;所述增量迭代器由迭代算子Delta Iterate Operator实现,所述批量迭代器由迭代算子Iterate Operator实现;/n所述迭代算子Delta Iterate Operator和迭代算子Iterate Operator共同包括:初始迭代输入Iterate Input、迭代函数Step Function、迭代结果Iteration Result、迭代终止条件Termination、乐观的补偿函数Compensate Function;所述迭代算子Delta IterateOperator还包括迭代输出Next Workset/Update SolutionSet,所述迭代算子IterateOperator还包括迭代输出Next Partial Solution;/n所述迭代输出Next Workset/Update SolutionSet用于存储每一轮迭代时更新的权利要求2所述的工作集WorkSet和解集SolutionSet,作为下一轮迭代的输入;所述迭代输出Next Partial Solution用于在每一轮迭代时更新的权利要求2所述的工作集WorkSet,作为下一轮迭代的输入。/n...

【技术特征摘要】
1.一种基于乐观容错方法的迭代器,其特征在于包括:增量迭代器和批量迭代器;所述增量迭代器由迭代算子DeltaIterateOperator实现,所述批量迭代器由迭代算子IterateOperator实现;
所述迭代算子DeltaIterateOperator和迭代算子IterateOperator共同包括:初始迭代输入IterateInput、迭代函数StepFunction、迭代结果IterationResult、迭代终止条件Termination、乐观的补偿函数CompensateFunction;所述迭代算子DeltaIterateOperator还包括迭代输出NextWorkset/UpdateSolutionSet,所述迭代算子IterateOperator还包括迭代输出NextPartialSolution;
所述迭代输出NextWorkset/UpdateSolutionSet用于存储每一轮迭代时更新的权利要求2所述的工作集WorkSet和解集SolutionSet,作为下一轮迭代的输入;所述迭代输出NextPartialSolution用于在每一轮迭代时更新的权利要求2所述的工作集WorkSet,作为下一轮迭代的输入。


2.根据权利要求1所述的一种基于乐观容错方法的迭代器,其特征在于所述初始迭代输入IterateInput包括:工作集WorkSet和解集SolutionSet,迭代输入的数据来自于数据源DataSource或者来自于上一级算子PreviousOperator的输出。


3.根据权利要求1所述的一种基于乐观容错方法的迭代器,其特征在于所述迭代函数StepFunction包括Map、FlatMap、Reduce、Join、Distinct、Aggregate、Union和Filter算子,根据迭代任务和场景选择其中一种算子作为步函数,用于在迭代过程中更新输入的数据集。


4.根据权利要求1所述的一种基于乐观容错方法的迭代器,其特征在于所述迭代结果IterationResult用于存储迭代终止时的输出,写入到DataSink中。


5.根据权利要求1所述的一种基于乐观容错方法的迭代器,其特征在于所述迭代终止条件Termination包括三种形式:
(1)默认终止条件:空工作集收敛标准EmptyWorkSetConvergenceCriterion;
(2)设置最大迭代次数,在没有其他迭代终止条件时,将在达到设置的最大迭代次数时结束迭代操作;
(3)自定义收敛条件AggregatorConvergence,可以根据需要实现自定义收敛;
所述迭代算子DeltaIterateOperator选择迭代终止条件Termination(1)、(2)、(3)中的任意一种作为终止条件;
所述迭代算子IterateOperator选择迭代终止条件Termination(2)、(3)中的任意一种作...

【专利技术属性】
技术研发人员:郭文鹏赵宇海王国仁季航旭李博扬
申请(专利权)人:东北大学北京理工大学
类型:发明
国别省市:辽宁;21

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

1