STRETCH:面向可扩展和弹性流处理的虚拟无共享并行
分布式、并行与集群计算
2022-05-02 v3
摘要
流处理应用通过数据分析任务的有向无环图从原始数据中提取价值。无共享(SN)并行是扩展流处理应用的事实标准。给定一个应用,SN 并行会为每个分析任务实例化多个副本,使每个实例负责整体分析的一个专用部分,并依赖专用队列在连接的实例之间交换数据。一方面,SN 并行可以向上和向外扩展应用的执行,因为线程可以在进程/节点内部和跨进程/节点运行任务实例。另一方面,其缺乏共享可能导致不必要的开销,并在线程操作可以在共享内存中共同访问的数据时阻碍向上扩展。这种权衡促使我们研究一种方法,使流处理应用能够利用共享内存并提升向上扩展(在向外扩展之前),同时遵循广泛采用的、基于 SN 的流处理应用 API。我们引入了 STRETCH,这是一个最大化向上扩展并为流处理应用提供即时弹性重配置(无需状态转移)的框架。我们提出了虚拟无共享(VSN)并行和弹性的概念,并为 STRETCH 支持的分析任务语义提供了形式化定义和正确性证明,表明它们扩展了常见流处理引擎中的语义。我们还提供了一个完全实现的原型,并表明 STRETCH 的性能超越了最先进的框架(如 Apache Flink),并且据我们所知,提供了前所未有的超快速重配置,即使在供应数十个新任务实例时,所需时间也少于 40 毫秒。
引用
@article{arxiv.2111.13058,
title = {STRETCH: Virtual Shared-Nothing Parallelism for Scalable and Elastic Stream Processing},
author = {Vincenzo Gulisano and Hannaneh Najdataei and Yiannis Nikolakopoulos and Alessandro V. Papadopoulos and Marina Papatriantafilou and Philippas Tsigas},
journal= {arXiv preprint arXiv:2111.13058},
year = {2022}
}