Functions-as-a-Service (FaaS) is a Serverless Cloud paradigm where a platform manages the execution scheduling (e.g., resource allocation, runtime environments) of stateless functions. Recent developments demonstrate the benefits of using domain-specific languages to express per-function scheduling policies, e.g., enforcing the allocation of functions on nodes that enjoy low data-access latencies thanks to proximity and connection pooling. We present aAPP, an affinity-aware extension of a platform-agnostic function scheduling language. We formalise its scheduling semantics and then study the complexity of statically checking reachability properties, e.g., useful to verify that trusted and untrusted functions cannot be co-located. Analysing different fragments of aAPP, we show that checking reachability of policies without affinity has linear complexity, while affinity makes the problem PSpace.
翻译:函数即服务(FaaS)是一种无服务器云范式,其中平台负责管理无状态函数的执行调度(例如,资源分配、运行时环境)。近期研究表明,使用领域特定语言来表达每个函数的调度策略具有诸多优势,例如,通过邻近性和连接池技术,强制将函数分配到具有低数据访问延迟的节点上。我们提出了aAPP,一种与平台无关的函数调度语言的亲和性感知扩展。我们形式化了其调度语义,进而研究了静态检查可达性属性的复杂性,例如,该属性可用于验证可信与不可信函数是否能够被共置。通过分析aAPP的不同片段,我们证明,检查无亲和性策略的可达性具有线性复杂度,而引入亲和性会使该问题变为PSpace复杂度。