论文标题
这不是目的:重新思考无服务器功能终止
This is not the End: Rethinking Serverless Function Termination
论文作者
论文摘要
弹性缩放是无服务器平台提供的核心优势之一,并要求它们以响应不断变化的工作负载来上下扩展资源。无服务器平台通过终止先前启动的实例(是容器或流程)来缩小资源。无服务器编程模型确保终止实例是安全的,假设在实例上运行的所有应用程序代码都已完成或计时。因此,安全取决于无服务器平台正确确定应用程序处理已完成。 在本文中,我们从观察到当前的无服务器平台在确定应用程序处理是否完成时不会考虑未决的异步I/O操作。因此,当执行使用异步I/O的程序时,这些平台是不安全的,并且错误地确定应用程序处理已终止可能会导致数据不一致时,当使用这些平台时。我们表明,此问题的原因是当前的无服务器语义夫妇终止和无服务器应用程序中的响应生成。我们通过提出对当前语义的扩展来解决这个问题,该语义是将响应生成和终止解终的,并通过扩展开源无服务器平台OpenWhisk来证明我们提案的功效和好处。
Elastic scaling is one of the central benefits provided by serverless platforms, and requires that they scale resource up and down in response to changing workloads. Serverless platforms scale-down resources by terminating previously launched instances (which are containers or processes). The serverless programming model ensures that terminating instances is safe assuming all application code running on the instance has either completed or timed out. Safety thus depends on the serverless platform's correctly determining that application processing is complete. In this paper, we start with the observation that current serverless platforms do not account for pending asynchronous I/O operations when determining whether application processing is complete. These platforms are thus unsafe when executing programs that use asynchronous I/O, and incorrectly deciding that application processing has terminated can result in data inconsistency when these platforms are used. We show that the reason for this problem is that current serverless semantics couple termination and response generation in serverless applications. We address this problem by proposing an extension to current semantics that decouples response generation and termination, and demonstrate the efficacy and benefits of our proposal by extending OpenWhisk, an open source serverless platform.