Proceedings of the 2021 USENIX Annual Technical Conference (USENIX ATC 2021); pages 957--971; Virtual event, July 14-16, 2021.
In FaaS workflows, a set of functions implement application logic by interacting and exchanging data among themselves. Contemporary FaaS platforms execute each function of a workflow in separate containers. When functions in a workflow interact, the resulting latency slows execution.
Faastlane minimizes function interaction latency by striving to execute functions of a workflow as threads within a single process of a container instance, which eases data sharing via simple load/store instructions. For FaaS workflows that operate on sensitive data, Faastlane provides lightweight thread-level isolation domains using Intel Memory Protection Keys (MPK). While threads ease sharing, implementations of languages such as Python and Node.js (widely used in FaaS applications) disallow concurrent execution of threads. Faastlane dynamically identifies opportunities for parallelism in FaaS workflows and forks processes (instead of threads) or spawns new container instances to concurrently execute parallel functions of a workflow.
We implemented Faastlane atop Apache OpenWhisk and show that it accelerates workflow instances by up to 15×, and reduces function interaction latency by up to 99.95% compared to OpenWhisk.
Slides: [ Powerpoint | Youtube ]
Code/Benchmarks: [ Github ]
DOI: [ At USENIX ]