文献阅读Streaming File Transfer Optimization for Distributed Science Workflows

博主 1548 2021-06-01

Streaming File Transfer Optimization for Distributed Science Workflows。该文献来自CLUSTER2020,文章收录于IEEE
https://dblp.org/db/conf/cluster/cluster2020.html

标题:分布式科学工作流的流文件迁移优化

摘要:
随着计算机技术和传感器技术的发展,科学应用产生了大量数据,数据需要以流的形式实时(或者几乎实时的)传递到高性能计算集群中进行处理,这需要可靠网络的性能保证。然而,现有的数据迁移应用设计初衷都是针对批处理工作负载方式设计,它们的迁移配置(transfer configuration)一经设置就无法更改了。这严重限制了流媒体应用对于变化的数据集合网络条件的适应。本文的方法是:在运行时系统条件偏离初设配置的情况下,动态调整迁移配置,文章提出FStream来对时间敏感的流媒体应用进行性能保证。

1. 介绍

科学应用依赖远端计算集群来实时或近似实时的处理数据,这需要良好的网络性能保证。另外,由于存储限制,离线的大规模数据分析工作也需要将大量数据分批地从本地迁移至远端集群。

尽管已经有专门的Google的MillWheelAmazon Kinesis的流式数据处理框架,以及开源的Apache Kafka的解决方案来处理流数据。他们的设计初衷是处理分布式环境下多个生产者和消费者之间小信息(samll messages)的传递。但科学应用产生数据极快,以十亿字节gigabytes per second产生,然后转换成文件格式(防止网络传输过程中的数据损坏丢失造成的永久资料损失),因此,流数据管理框架并不适应科学工作流的需要。

另一方面,高速文件传输应用服务(Globus和bbcp)也不适用于流文件传输。原因:大多数高速数据传输应用(Globus GridFTP scp)建立传输队列后,就不支持接收新文件加入队列的服务了,因此需要对每批传输数据(batch of files)建立新的传输任务。带来的问题:
1)每次传输需要建立和拆除(tear down)通道(channel)。
2)它们不调优传输参数(eg:并行链接数量,I/O的块block大小),yield poor transfer performance? 使用固定参数,对变化的数据集特征和网络条件适配差
3)为了吞吐量,不提供QoS(quality of service)服务质量保证,使用TCP
(best-effort transport protocols)

本文针对分布式科学工作流中的流媒体文件传输提出FStream以提高QoS。FStream采用探索式方法(heuristic approach)来决定传输设置(参数),集成了动态调优机制,定期重新校准参数来适应变化的数据集特征。使用在线分析(online profiling)来探索搜索空间中的参数子集。

综上,本文工作:

  • 提出FStream,通过动态调优、在线分析和历史分析为流式工作流提供可靠的传输性能。
  • 进行广泛的生产实验,使用生产环境的高速网络;既有合成的,也有真实的数据集;在不同的工作量负载和网络条件?(traffic conditions)下,与最先进的传输应用和服务进行补缴
  • 分解FStream的性能来评估不同技术对性能的贡献。进一步探讨FStream可调参数对性能和收敛速度的影响

2. 背景和相关工作

TCP在高速网络中性能差,因而大家开发了很多自定义拥塞控制算法,HSTCP,FastTCP,Compound TCP
有效的技术:

  • command pipelining 减少FTP文件之间传输delay
  • parallel network connections 多个TCP连接传输单个文件
  • concurrent file transfers 同时传多个文件(依赖并行文件系统Lustre,GPFS等)

现有的算法(heuristic and historical data-based solutions)都是通过预设参数传输文件,对于固定的数据集效果不错,但对于流文件(文件大小会变化,网络状况会变化)效果不佳

3. 系统设计

提出Fstream来调整传输参数,以实时效率在线调整为卖点,为延迟敏感型分布式工作流应用提供良好的传输体验

基本结构:
image.png
Data Explore周期性的检查新文件,并按照文件大小将其分类,将分类后的文件告知Transfer Controller;分类后的文件按照不同大小,有不同的传输参数设置。当有新文件加入时,加入到传输队列等待传输

初始化:使用 heuristic solution,设置concurrency (cc0),parallelism (p0), and pipelining (pp0)
image.png
目标:使用高并发和多流水传输小文件,使用高并行和低到中等的并发传输大文件

FStream使用动态调优dynamic tuning, 在线分析online profiling, 历史分析historical analysis techniques来实时调整传输参数

动态调优:当新文件传输时,Fstream将其添加到传输队列,由于新文件的特征和已存在文件很可能不同,需要处理。首先使用heuristic algorithm计算新文件的传输参数,如果与已有参数不同,采取下列步骤更新:

  • 如果新的concurrency value小于老的,将多余的进程标记为“passive”,不用于传输,但是keep alive,以方便未来可能需要使用时的传输;如果大于老的,创建新的进程。
  • 一个已经创建的进程的parallel数量难以更改,因而如果传输的文件的parallelism数量不同的话,进程将难以复用。Fstream首先寻找相同的parallelism数量,有则复用。没有的话:如果需要的parallelism数量大于现有数量,所有进程重启,使用新的参数,并补足需要的进程数量;如果小于,标记passive给多余的进程,需要的进程重启,使用新的参数。

在线分析
动态调优这样的方法确实能够帮助变化的数据集传输,但是这样的方法依然依赖于heuristic method来决定新的传输参数,对于系统设置偏离期望的情况性能很差(?)

Re-adjusting transfer settings by incorporating new files and updating the transfer parameters(i.e., dynamic tuning) helps to adapt to changing dataset characteristics. However, dynamic tuning still depends on the heuristic method to determine the new values for the transfer parameters, which is bound to under-perform when end system settings deviate from the expectations.

通过算法来周期性的分析并发数量,以调优concurrent数量:
image.png

历史分析
在线分析的耗时较长,对于频繁变化的数据集需要不停的在线分析、搜索最优空间,造成系统负担。于是为了缓解负担,使用缓存策略,缓存长时间内过去运行的参数到profilingHistory。

To minimize its cost, FStream exploits the long running nature of streaming workflows and caches previous online profiling results in profilingHistory. These logs are then referred when online profiling is required.