[论文解读] Affinity-aware Serverless Function Scheduling
本文提出 aAPP,一种声明式、平台无关的 Apache OpenWhisk 语言扩展,用于在无服务器函数即服务(FaaS)环境中实现亲和性感知调度。通过允许开发人员基于其他函数的运行时存在性来表达函数共置或隔离策略,aAPP 在延迟敏感和安全关键场景中提升了性能,同时在非亲和性工作负载中引入了可忽略的开销。
Functions-as-a-Service (FaaS) is a Serverless Cloud paradigm where a platform manages the scheduling (e.g., resource allocation, runtime environments) of stateless functions. Recent work proposed using domain-specific languages to express per-function policies, e.g., policies that enforce the allocation on nodes that enjoy lower latencies to databases and services used by the function. Here, we focus on affinity-aware scenarios, i.e., where, for performance and functional requirements, the allocation of a function depends on the presence/absence of other functions on nodes. We present aAPP, an extension of a declarative, platform-agnostic language that captures affinity-aware scheduling at the FaaS level. We implement an aAPP-based prototype on Apache OpenWhisk. Besides proving that a FaaS platform can capture affinity awareness using aAPP and improve performance in affinity-aware scenarios, we use our prototype to show that aAPP imposes no noticeable overhead in scenarios without affinity constraints.
研究动机与目标
- 解决 FaaS 平台中缺乏原生支持函数(反)亲和性约束的问题。
- 使开发人员能够基于运行时函数的共置或隔离来表达调度策略。
- 设计一种声明式、平台无关的语言扩展,可无缝集成到现有 FaaS 运行时中。
- 评估 aAPP 在亲和性感知与非亲和性场景下的性能影响。
- 证明 aAPP 在启用复杂调度策略的同时,对运行时开销可忽略不计。
提出的方法
- 在现有 APP 语言基础上扩展新构造,以表达函数亲和性与反亲和性约束。
- 设计一种线性时间调度算法,用于检查根据 aAPP 策略,函数是否可被分配到某个工作器。
- 在 Apache OpenWhisk 上实现 aAPP 原型,将策略评估集成到调度流水线中。
- 使用声明式语法为每个函数定义策略,指定目标工作器上必须存在或必须排除的其他函数。
- 采用集中式调度器以强制执行策略,同时避免多控制器部署中的调度竞争。
- 使用 7 个基准测试验证原型,并与原生 OpenWhisk 对比,以测量性能开销。
实验结果
研究问题
- RQ1aAPP 是否能有效表达 FaaS 层面的亲和性感知调度策略,例如将共享数据库连接的函数共置?
- RQ2将 aAPP 集成到 Apache OpenWhisk 是否会在非亲和性场景中引入可测量的性能开销?
- RQ3aAPP 调度在亲和性感知用例中如何提升性能,例如避免与计算密集型函数产生资源争用?
- RQ4aAPP 是否能高效地在运行时进行评估,以确保可扩展性和低延迟?
- RQ5(反)亲和性约束对真实世界 FaaS 工作负载中函数调度的影响如何?
主要发现
- 基于 aAPP 的原型成功在 FaaS 调度中强制执行了(反)亲和性约束,在亲和性感知场景中通过降低函数间延迟和资源争用,显著提升了性能。
- 在非亲和性工作负载中,aAPP 引入的开销可忽略不计,在 7 个基准测试中性能下降均低于可测量阈值。
- 调度算法的时间复杂度相对于工作器数量和脚本长度为线性,确保了可扩展性。
- 原型表明,FaaS 层面的亲和性调度是可行且高效的,且不会牺牲虚拟机/容器复用能力,也未引入基础设施抽象泄漏。
- 评估结果证实,aAPP 能够实现表达性强、安全且高效的调度策略,同时不损害平台性能。
- 本研究凸显了将 aAPP 集成到其他 FaaS 平台的潜力,目前已初步扩展支持 FunLess。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。