EPCC实验室投递的论文"DataFlower: Exploiting the Data-flow Paradigm for Serverless Wrokflow Orchestration" 和"Nodens: Enabling Resource Efficient and Fast QoS Recovery of Dynamic Microservice Applications in Datacenters"被体系结构领域四大会议 Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS' 24)和系统结构国际顶级学术会议 USENIX Annual Technical Conference (USENIX ATC' 23) 录用。其中ASPLOS' 24的论文经过ASPLOS' 23 fall的major revison在ASPLOS' 24 spring正式接收,恭喜同学们!
距离正式会议交流和论文公布还有一段时间,我们在这里提前放出内容前瞻,对接受的两篇论文进行介绍。
论文1: DataFlower: Exploiting the Data-flow Paradigm for Serverless Workflow Orchestration - ASPLOS' 24
作者: Zijun Li, Chuahao Xu, Quan Chen, Jieru Zhao, Chen Chen, Minyi Guo.
工作简介:
Serverless中按需自动扩展的函数执行模式是云原生时代的流行任务执行模式。通过将函数与作业流程中的其他要素相互连接,租户可以实现复杂的功能。传统上,程序员需要手动触发每个函数,并处理函数调度、中间数据传输和错误重试。现在,云计算供应商提供了一种更容易构建和运行函数工作流程的方式,称为无服务器工作流Serverless Workflow。在Serverless Workflow中,程序员只需要声明函数调用依赖关系即可,无服务器平台会自动管理函数调度、中间数据和容错容错。如图1所示,之前的研究采用控制流范式来管理无服务器工作流程,但是控制流范式会导致函数响应高延迟,因为它需要在持久化数据上进行大量的存储开销、串行资源占用和延迟函数触发。
图1:基于控制流的Serverless Workflow执行 图2:基于数据流的Serverless Workflow执行
我们的研究表明,若采取如图2所示的数据流范式,就可以有效解决这些问题。因此我们提出了DataFlower方案,它为无服务器工作流提供了基于数据流范式的编程和调度实现,且DataFlower是首个使用数据流范式来管理Serverless Workflow的调度、编程模型。在DataFlower执行模型中,我们将函数的容器抽象为函数逻辑单元(FLU)和数据逻辑单元(DLU)。FLU负责执行函数代码,DLU则将输出数据从FLU中转换,并将其发送到目的地函数。主机和容器之间使用协同通信机制,提高数据传输效率。大量的试验结果表明,与基于控制流的Serverless workflow编排相比,DataFlower可以将应用程序的p99尾延迟最高降低35.4%,在峰值吞吐量方面最大提高至3.8倍,同时在资源占用方面最高降低69.3%。本篇工作也是既FaaSFlow(ASPLOS 22)之后,在FaaSFlow的代码框架上添加了DataFlower的运行时支撑和调度引擎,实现了Serverless Workflow方向上的进一步优化。
论文2: Nodens: Enabling Resource Efficient and Fast QoS Recovery of Dynamic Microservice Applications in Datacenters - ATC' 23
作者: Jiuchen Shi, Quan Chen, Zhixin Tong, Hang Zhang, Kaihua Fu, Minyi Guo.
工作简介:
面向用户应用程序具有严格的QoS目标,并逐步转型为微服务架构。微服务的解耦带来了复杂的依赖结构,通常表示为DAG。其中节点表示微服务,边表示微服务间调用依赖关系。此外,工业微服务应用通常有多个不同的调用图,不同的调用图源自不同的用户请求模式。例如,用户对综合或最低价格推荐的不同选择。每个调用图只包含整个微服务依赖图的一部分,不同的调用图可能拥有相同的微服务。
微服务应用的动态性源自两个方面:负载动态性(负载大小随时间变化)和调用图动态性(使用不同调用图的请求比例随时间变化)。目前的微服务资源管理工作难以处理这两种动态性,在动态场景中需要较长的资源调整和QoS恢复时间。处理两种动态性存在如下挑战:(1)基于延迟的监控难以快速感知动态性导致的微服务负载变化,存在滞后性;(2)微服务间复杂调用关系和阻塞效应,导致在动态性发生时难以获取到每个微服务的真实“待处理”负载;(3)调整过程中的排队请求在恰好的资源分配下难以清除,造成较长的QoS恢复时间。
基于以上思想,本文提出了Nodens,一种面向微服务动态性进行高效资源管理及快速QoS恢复方案。Nodens包括:(1)基于网络的负载监控器,负责在微服务入口提前获取微服务的网络使用以预测监控负载大小;(2)感知阻塞的真实负载更新器,负责根据微服务的依赖图、资源分配等估计每个微服务的真实“待处理”负载;(3)资源高效的请求清空器,负责为微服务分配“刚好足够”的过量资源,以快速清空在资源调整过程中排队请求。
基于目前流行的微服务应用以及Alibaba微服务数据集,我们生成了3个具有动态调用图特征的benchmark。通过在动态场景下实验评估,Nodens可以有效减少QoS恢复时间达10.9X,同时仅仅需要多使用7%的过量资源。