TOCS 2021 Paper 论文阅读笔记整理
问题
针对资源和数据特性优化分布式数据处理的调度和通信,对于实现高性能至关重要。在最近的研究中广泛讨论的例子是:地理分布的资源[14,30,47,48]、廉价的瞬时资源[34,35,39,52,54]、基于磁盘的大数据混洗[32,33,57]和偏斜数据[17,20,21,31]。现有的调度和通信方法在没有意识到这些特征的情况下,往往会导致性能大幅下降。
现有方法局限性
现有的优化方法主要分为两类。
-
分布式运行时提供了低级别的策略接口来应用优化,但不能确保维护正确的应用程序语义,通常需要花费大量精力才能使用。
-
扩展高级应用程序编程模型的策略接口确保了正确性,但不能提供足够的精细控制。
本文方法
本文提出了Apache Nemo,用于分布式数据流处理的优化框架,为高性能提供了精细的控制,并确保了正确性以便于使用。
-
中间表示(IR)有向无环图(DAG)。IR DAG表示数据处理应用,顶点表示逻辑运算,边表示表示数据依赖性。为了确保转换后的IR DAG与原始IR DAG产生相同的输出,本文提供了两种类型转换方法:重塑和注释。重塑方法可以插入一组Nemo所知的语义,例如对数据进行采样的顶点。注释方法设置每个顶点和边的执行属性,以配置细粒度的调度和通信,例如推测性克隆和数据持久性策略。Nemo使用关于边的通信模式(例如,混洗)的信息以及关于配置的效用顶点和执行属性的信息来确保正确性。
-
编译器优化过程。将IR DAG作为输入并调用其转换方法,可以组合并应用于不同的应用程序。
-
运行时扩展。与底层运行时集成以应用IR DAG转换。当通过运行时DAG调度IR DAG的IR顶点时,调度器扩展应用了各种调度策略。还在作业执行期间重写运行时DAG,以应用运行时优化。
开源代码:Nemo | A Data Processing System for Flexible Employment With Different Deployment Characteristics.
评估结果表明,Nemo实现了可组合和可重复使用的优化,与为特定部署场景量身定制的现有专用运行时相比,这些优化带来了性能改进。
总结
分布式数据处理的调度和通信优化问题,如何利用资源和数据特性,进行细粒度优化并保证正确性。本文提出了 Nemo,用于分布式数据流处理的优化框架,包括三个关键技术:(1)将应用转变为中间表示(IR)的有向无环图(DAG),其中顶点表示逻辑运算,边表示表示数据依赖性。提供了两种类型转换方法:重塑方法可以插入一组Nemo所知的语义;注释方法设置每个顶点和边的执行属性,以配置细粒度的调度和通信。(2)编译器优化过程,将IR DAG作为输入并调用其转换方法,可以组合并应用于不同的应用程序。(3)运行时扩展,与底层运行时集成以应用IR DAG转换。当通过运行时DAG调度IR DAG的IR顶点时,调度器扩展应用了各种调度策略。在作业执行期间重写运行时DAG,以应用运行时优化。