Computer Science > Distributed, Parallel, and Cluster Computing
[Submitted on 28 Sep 2021 (this version), latest version 29 Sep 2022 (v3)]
Title:Restructuring Serverless Computing with Data-Centric Function Orchestration
View PDFAbstract:Serverless applications are usually composed of multiple short-lived, single-purpose functions exchanging data in reaction to events or changes of states. Existing function orchestration services coordinate functions and trigger their activation following some predefined rules (e.g., function dependency and state machine), while being oblivious to the underlying data exchange between functions. Such design has limited expressiveness and incurs high orchestration overhead: developers often need to manage complex function interactions by themselves, and the performance can still be unsatisfactory. In this paper, we advocate data-centric orchestration where function invocations are triggered by the flow of data. In our design, the platform provides data trigger APIs through which developers can control when and how the output of one or many functions is passed to other functions as input and triggers their executions. With explicit support of data triggers, complex function interactions can be easily implemented, and data locality can also be satisfied. As a manifestation of this design, we present Pheromone, a scalable, low-latency serverless platform. Pheromone schedules functions close to the input with a two-level, shared-nothing scheduling hierarchy. Compared to existing commercial and open-source platforms, Pheromone cuts the latencies of function interactions and data exchanges by orders of magnitude and scales well to complex workflows with long function chains and high parallelism. Case studies further demonstrate that Pheromone enables easy implementations of many applications, including real-time query, stream processing, and MapReduce sort.
Submission history
From: Minchen Yu [view email][v1] Tue, 28 Sep 2021 05:15:09 UTC (767 KB)
[v2] Sun, 10 Jul 2022 02:21:27 UTC (1,210 KB)
[v3] Thu, 29 Sep 2022 07:59:16 UTC (1,223 KB)
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.