Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3544216.3544259acmconferencesArticle/Chapter ViewAbstractPublication PagescommConference Proceedingsconference-collections
research-article
Open access

SPRIGHT: extracting the server from serverless computing! high-performance eBPF-based event-driven, shared-memory processing

Published: 22 August 2022 Publication History

Abstract

Serverless computing promises an efficient, low-cost compute capability in cloud environments. However, existing solutions, epitomized by open-source platforms such as Knative, include heavyweight components that undermine this goal of serverless computing. Additionally, such serverless platforms lack dataplane optimizations to achieve efficient, high-performance function chains that facilitate the popular microservices development paradigm. Their use of unnecessarily complex and duplicate capabilities for building function chains severely degrades performance. 'Cold-start' latency is another deterrent.
We describe SPRIGHT, a lightweight, high-performance, responsive serverless framework. SPRIGHT exploits shared memory processing and dramatically improves the scalability of the dataplane by avoiding unnecessary protocol processing and serialization-deserialization overheads. SPRIGHT extensively leverages event-driven processing with the extended Berkeley Packet Filter (eBPF). We creatively use eBPF's socket message mechanism to support shared memory processing, with overheads being strictly load-proportional. Compared to constantly-running, polling-based DPDK, SPRIGHT achieves the same dataplane performance with 10× less CPU usage under realistic workloads. Additionally, eBPF benefits SPRIGHT, by replacing heavyweight serverless components, allowing us to keep functions 'warm' with negligible penalty.
Our preliminary experimental results show that SPRIGHT achieves an order of magnitude improvement in throughput and latency compared to Knative, while substantially reducing CPU usage, and obviates the need for 'cold-start'.

Supplementary Material

PDF File (p780-qi-supp.pdf)
Supplemental material.

References

[1]
2021. ab - Apache HTTP server benchmarking tool. https://httpd.apache.org/docs/2.4/programs/ab.html. [online].
[2]
2021. Kubernetes Components. https://kubernetes.io/docs/concepts/overview/components/. [online].
[3]
2021. wrk - a HTTP benchmarking tool. https://github.com/wg/wrk. [online].
[4]
2022. Apache OpenWhisk. https://openwhisk.apache.org/. [online].
[5]
2022. AWS Lambda. https://aws.amazon.com/lambda/. [online].
[6]
2022. AWS Serverless API. https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html. [online].
[7]
2022. BPF-HELPERS - list of eBPF helper functions. https://man7.org/linux/man-pages/man7/bpf-helpers.7.html. [online].
[8]
2022. Chaining OpenFaaS functions. https://ericstoekl.github.io/faas/developer/chaining_functions/. [online].
[9]
2022. CloudEvents Spec. https://github.com/cloudevents/spec. [online].
[10]
2022. Dynamically Loaded (DL) Libraries. https://tldp.org/HOWTO/Program-Library-HOWTO/dl-libraries.html. [online].
[11]
2022. eBPF XDP: The Basics and a Quick Tutorial. https://www.tigera.io/learn/guides/ebpf/ebpf-xdp/. [online].
[12]
2022. Istio Architecture. https://istio.io/latest/docs/ops/deployment/architecture/. [online].
[13]
2022. Istio Traffic Management. https://istio.io/latest/docs/concepts/traffic-management/. [online].
[14]
2022. Knative. https://knative.dev. [online].
[15]
2022. Knative Eventing. https://knative.dev/docs/eventing/. [online].
[16]
2022. Knative Serving. https://knative.dev/docs/serving/. [online].
[17]
2022. Knative Serving Autoscaling System - Activator. https://github.com/knative/serving/blob/main/docs/scaling/SYSTEM.md#activator. [online].
[18]
2022. Locust: An open source load testing tool. https://locust.io/. [online].
[19]
2022. MQTT Version 5.0. https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html. [online].
[20]
2022. Multi-process Support of DPDK. https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html. [online].
[21]
2022. NGINX. https://www.nginx.com/. [online].
[22]
2022. of-watchdog. https://github.com/openfaas/of-watchdog. [online].
[23]
2022. Online Boutique by Google. https://github.com/GoogleCloudPlatform/microservices-demo. [online].
[24]
2022. OpenFaaS. https://www.openfaas.com/. [online].
[25]
2022. OpenFaaS API Gateway / Portal. https://docs.openfaas.com/architecture/gateway/. [online].
[26]
2022. OpenFaaS Triggers. https://docs.openfaas.com/reference/triggers/. [online].
[27]
2022. OpenWhisk - Creating action sequences. https://github.com/apache/openwhisk/blob/master/docs/actions.md#creating-action-sequences. [online].
[28]
2022. OpenWhisk Composer. https://github.com/apache/openwhisk-composer. [online].
[29]
2022. Ring Library. https://doc.dpdk.org/guides/prog_guide/ring_lib.html. [online].
[30]
2022. SPRIGHT. https://github.com/ucr-serverless/spright.git. [online].
[31]
Alexandru Agache, Marc Brooker, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka, and Diana-Maria Popa. 2020. Firecracker: Lightweight Virtualization for Serverless Applications. In 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). USENIX Association, Santa Clara, CA, 419--434. https://www.usenix.org/conference/nsdi20/presentation/agache
[32]
Istemi Ekin Akkus, Ruichuan Chen, Ivica Rimac, Manuel Stein, Klaus Satzke, Andre Beck, Paarijaat Aditya, and Volker Hilt. 2018. SAND: Towards High-Performance Serverless Computing. In 2018 USENIX Annual Technical Conference (USENIX ATC 18). USENIX Association, Boston, MA, 923--935. https://www.usenix.org/conference/atc18/presentation/akkus
[33]
Giuseppe Amato, Fabio Carrara, Fabrizio Falchi, Claudio Gennaro, and Claudio Vairo. 2016. Car parking occupancy detection using smart camera networks and Deep Learning. In 2016 IEEE Symposium on Computers and Communication (ISCC). 1212--1217.
[34]
Apache Software Foundation. 2022. APACHE KAFKA. https://kafka.apache.org/. [online].
[35]
Priscilla Benedetti, Mauro Femminella, Gianluca Reali, and Kris Steenhaut. 2021. Experimental Analysis of the Application of Serverless Computing to IoT Platforms. Sensors 21, 3 (2021).
[36]
Matteo Bertrone, Sebastiano Miano, Jianwen Pi, Fulvio Risso, and Massimo Tumolo. 2018. Toward an eBPF-based clone of iptables. Netdev'18 (2018).
[37]
Vivek M. Bhasi, Jashwant Raj Gunasekaran, Prashanth Thinakaran, Cyan Subhra Mishra, Mahmut Taylan Kandemir, and Chita Das. 2021. Kraken: Adaptive Container Provisioning for Deploying Dynamic DAGs in Serverless Platforms. Association for Computing Machinery, New York, NY, USA, 153--167.
[38]
Carsten Bormann, Angelo P Castellani, and Zach Shelby. 2012. Coap: An application protocol for billions of tiny internet nodes. IEEE Internet Computing 16, 2 (2012), 62--67.
[39]
Qizhe Cai, Shubham Chaudhary, Midhul Vuppalapati, Jaehyun Hwang, and Rachit Agarwal. 2021. Understanding Host Network Stack Overheads. In Proceedings of the 2021 ACM SIGCOMM 2021 Conference (Virtual Event, USA) (SIGCOMM '21). Association for Computing Machinery, New York, NY, USA, 65--77.
[40]
Aditya Dhakal, Sameer G Kulkarni, and K. K. Ramakrishnan. 2020. ECML: Improving Efficiency of Machine Learning in Edge Clouds. In 2020 IEEE 9th International Conference on Cloud Networking (CloudNet). 1--6.
[41]
Dmitry Duplyakin, Robert Ricci, Aleksander Maricq, Gary Wong, Jonathon Duerig, Eric Eide, Leigh Stoller, Mike Hibler, David Johnson, Kirk Webb, Aditya Akella, Kuangching Wang, Glenn Ricart, Larry Landweber, Chip Elliott, Michael Zink, Emmanuel Cecchet, Snigdhaswin Kar, and Prabodh Mishra. 2019. The Design and Operation of CloudLab. In Proceedings of the USENIX Annual Technical Conference (ATC). 1--14. https://www.flux.utah.edu/paper/duplyakin-atc19
[42]
Silvery Fu, Radhika Mittal, Lei Zhang, and Sylvia Ratnasamy. 2020. Fast and Efficient Container Startup at the Edge via Dependency Scheduling. In 3rd USENIX Workshop on Hot Topics in Edge Computing (HotEdge 20). USENIX Association. https://www.usenix.org/conference/hotedge20/presentation/fu
[43]
Alexander Fuerst and Prateek Sharma. 2021. FaasCache: Keeping Serverless Computing Alive with Greedy-Dual Caching. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (Virtual, USA) (ASPLOS 2021). Association for Computing Machinery, New York, NY, USA, 386--400.
[44]
Phani Kishore Gadepalli, Sean McBride, Gregor Peach, Ludmila Cherkasova, and Gabriel Parmer. 2020. Sledge: A Serverless-First, Light-Weight Wasm Runtime for the Edge. In Proceedings of the 21st International Middleware Conference (Delft, Netherlands) (Middleware '20). Association for Computing Machinery, New York, NY, USA, 265--279.
[45]
Toke Høiland-Jørgensen, Jesper Dangaard Brouer, Daniel Borkmann, John Fastabend, Tom Herbert, David Ahern, and David Miller. 2018. The EXpress Data Path: Fast Programmable Packet Processing in the Operating System Kernel. In Proceedings of the 14th International Conference on Emerging Networking EXperiments and Technologies (Heraklion, Greece) (CoNEXT '18). Association for Computing Machinery, New York, NY, USA, 54--66.
[46]
Jinho Hwang, K. K. Ramakrishnan, and Timothy Wood. 2014. NetVM: High Performance and Flexible Networking Using Virtualization on Commodity Platforms. In 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI 14). USENIX Association, Seattle, WA, 445--458. https://www.usenix.org/conference/nsdi14/technical-sessions/presentation/hwang
[47]
IBM. 2022. Creating serverless REST APIs. https://cloud.ibm.com/docs/openwhisk?topic=openwhisk-apigateway. [online].
[48]
IBM. 2022. IBM Cloud Functions. https://cloud.ibm.com/functions/. [online].
[49]
Svilen Kanev, Juan Pablo Darago, Kim Hazelwood, Parthasarathy Ranganathan, Tipp Moseley, Gu-Yeon Wei, and David Brooks. 2015. Profiling a Warehouse-Scale Computer. SIGARCH Comput. Archit. News 43, 3S (jun 2015), 158--169.
[50]
Jiaxin Lei, Manish Munikar, Kun Suo, Hui Lu, and Jia Rao. 2021. Parallelizing Packet Processing in Container Overlay Networks. In Proceedings of the Sixteenth European Conference on Computer Systems (Online Event, United Kingdom) (EuroSys '21). Association for Computing Machinery, New York, NY, USA, 261--276.
[51]
Joshua Levin and Theophilus A. Benson. 2020. ViperProbe: Rethinking Microservice Observability with eBPF. In 2020 IEEE 9th International Conference on Cloud Networking (CloudNet). 1--8.
[52]
Chuanpeng Li, Chen Ding, and Kai Shen. 2007. Quantifying the Cost of Context Switch. In Proceedings of the 2007 Workshop on Experimental Computer Science (San Diego, California) (ExpCS '07). Association for Computing Machinery, New York, NY, USA, 2--es.
[53]
Junfeng Li, Sameer G. Kulkarni, K. K. Ramakrishnan, and Dan Li. 2019. Understanding Open Source Serverless Platforms: Design Considerations and Performance. In Proceedings of the 5th International Workshop on Serverless Computing (Davis, CA, USA) (WOSC '19). Association for Computing Machinery, New York, NY, USA, 37--42.
[54]
Ping-Min Lin and Alex Glikson. 2019. Mitigating Cold Starts in Serverless Platforms: A Pool-Based Approach. arXiv:1903.12221 [cs.DC]
[55]
Sebastiano Miano, Matteo Bertrone, Fulvio Risso, Mauricio Vásquez Bernal, Yunsong Lu, and Jianwen Pi. 2019. Securing Linux with a Faster and Scalable Iptables. SIGCOMM Comput. Commun. Rev. 49, 3 (nov 2019), 2--17.
[56]
Microsoft. 2022. Azure - Function chaining in Durable Functions. https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-sequence?tabs=csharp. [online].
[57]
Viyom Mittal, Shixiong Qi, Ratnadeep Bhattacharya, Xiaosu Lyu, Junfeng Li, Sameer G. Kulkarni, Dan Li, Jinho Hwang, K. K. Ramakrishnan, and Timothy Wood. 2021. Mu: An Efficient, Fair and Responsive Serverless Framework for Resource-Constrained Edge Clouds. Association for Computing Machinery, New York, NY, USA, 168--181.
[58]
Jeffrey C Mogul and KK Ramakrishnan. 1997. Eliminating receive livelock in an interrupt-driven kernel. ACM Transactions on Computer Systems 15, 3 (1997), 217--252.
[59]
Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler Harter, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. 2018. SOCK: Rapid Task Provisioning with Serverless-Optimized Containers. In 2018 USENIX Annual Technical Conference (USENIX ATC 18). USENIX Association, Boston, MA, 57--70. https://www.usenix.org/conference/atc18/presentation/oakes
[60]
Jinwoo Park, Byungkwon Choi, Chunghan Lee, and Dongsu Han. 2021. GRAF: A Graph Neural Network Based Proactive Resource Allocation Framework for SLO-Oriented Microservices. In Proceedings of the 17th International Conference on Emerging Networking EXperiments and Technologies (Virtual Event, Germany) (CoNEXT '21). Association for Computing Machinery, New York, NY, USA, 154--167.
[61]
Shixiong Qi, Sameer G. Kulkarni, and K. K. Ramakrishnan. 2021. Assessing Container Network Interface Plugins: Functionality, Performance, and Scalability. IEEE Transactions on Network and Service Management 18, 1 (2021), 656--671.
[62]
Red Hat, Inc. 2022. Understanding the eBPF networking features in RHEL. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/assembly_understanding-the-ebpf-features-in-rhel_configuring-and-managing-networking. [online].
[63]
Mohammad Shahrad, Rodrigo Fonseca, Inigo Goiri, Gohar Chaudhry, Paul Batum, Jason Cooke, Eduardo Laureano, Colby Tresness, Mark Russinovich, and Ricardo Bianchini. 2020. Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider. In 2020 USENIX Annual Technical Conference (USENIX ATC 20). USENIX Association, 205--218. https://www.usenix.org/conference/atc20/presentation/shahrad
[64]
Arjun Singhvi, Arjun Balasubramanian, Kevin Houck, Mohammed Danish Shaikh, Shivaram Venkataraman, and Aditya Akella. 2021. Atoll: A Scalable Low-Latency Serverless Platform. Association for Computing Machinery, New York, NY, USA, 138--152.
[65]
Ali Tariq, Austin Pahl, Sharat Nimmagadda, Eric Rozner, and Siddharth Lanka. 2020. Sequoia: Enabling Quality-of-Service in Serverless Computing. In Proceedings of the 11th ACM Symposium on Cloud Computing (Virtual Event, USA) (SoCC '20). Association for Computing Machinery, New York, NY, USA, 311--327.
[66]
The Linux Foundation. 2022. eBPF. https://ebpf.io/. [online].
[67]
Tigera, Inc. 2022. About eBPF. https://projectcalico.docs.tigera.io/about/about-ebpf. [online].
[68]
Tigera, Inc. 2022. Project Calico. https://www.tigera.io/project-calico/. [online].
[69]
William Tu, Yi-Hung Wei, Gianni Antichi, and Ben Pfaff. 2021. Revisiting the Open VSwitch Dataplane Ten Years Later. In Proceedings of the 2021 ACM SIGCOMM 2021 Conference (Virtual Event, USA) (SIGCOMM '21). Association for Computing Machinery, New York, NY, USA, 245--257.
[70]
Marcos A. M. Vieira, Matheus S. Castanho, Racyus D. G. Pacífico, Elerson R. S. Santos, Eduardo P. M. Câmara Júnior, and Luiz F. M. Vieira. 2020. Fast Packet Processing with EBPF and XDP: Concepts, Code, Challenges, and Applications. ACM Comput. Surv. 53, 1, Article 16 (feb 2020), 36 pages.
[71]
Adam Wolnikowski, Stephen Ibanez, Jonathan Stone, Changhoon Kim, Rajit Manohar, and Robert Soulé. 2021. Zerializer: Towards Zero-Copy Serialization. In Proceedings of the Workshop on Hot Topics in Operating Systems (Ann Arbor, Michigan) (HotOS '21). Association for Computing Machinery, New York, NY, USA, 206--212.
[72]
Christopher R. Wren, Yuri A. Ivanov, Darren Leigh, and Jonathan Westhues. 2007. The MERL Motion Detector Dataset. In Proceedings of the 2007 Workshop on Massive Datasets (Nagoya, Japan) (MD '07). Association for Computing Machinery, New York, NY, USA, 10--14.
[73]
Muneer Bani Yassein, Mohammed Q Shatnawi, Shadi Aljwarneh, and Razan Al-Hatmi. 2017. Internet of Things: Survey and open issues of MQTT protocol. In 2017 international conference on engineering & MIS (ICEMIS). IEEE, 1--6.
[74]
Wei Zhang, Guyue Liu, Wenhui Zhang, Neel Shah, Phillip Lopreiato, Gregoire Todeschi, K.K. Ramakrishnan, and Timothy Wood. 2016. OpenNetVM: A Platform for High Performance Network Service Chains. In Proceedings of the 2016 ACM SIGCOMM Workshop on Hot Topics in Middleboxes and Network Function Virtualization. ACM.
[75]
Jianer Zhou, Xinyi Qiu, Zhenyu Li, Gareth Tyson, Qing Li, Jingpu Duan, and Yi Wang. 2021. Antelope: A Framework for Dynamic Selection of Congestion Control Algorithms. In 2021 IEEE 29th International Conference on Network Protocols (ICNP). 1--11.

Cited By

View all

Index Terms

  1. SPRIGHT: extracting the server from serverless computing! high-performance eBPF-based event-driven, shared-memory processing

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      SIGCOMM '22: Proceedings of the ACM SIGCOMM 2022 Conference
      August 2022
      858 pages
      ISBN:9781450394208
      DOI:10.1145/3544216
      This work is licensed under a Creative Commons Attribution-ShareAlike International 4.0 License.

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 22 August 2022

      Check for updates

      Badges

      Author Tags

      1. eBPF
      2. event-driven
      3. function chain
      4. serverless

      Qualifiers

      • Research-article

      Funding Sources

      • US NSF

      Conference

      SIGCOMM '22
      Sponsor:
      SIGCOMM '22: ACM SIGCOMM 2022 Conference
      August 22 - 26, 2022
      Amsterdam, Netherlands

      Acceptance Rates

      Overall Acceptance Rate 462 of 3,389 submissions, 14%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)1,774
      • Downloads (Last 6 weeks)158
      Reflects downloads up to 26 Jan 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2025)Unveiling overlooked performance variance in serverless computingEmpirical Software Engineering10.1007/s10664-025-10615-330:2Online publication date: 21-Jan-2025
      • (2024)ALPSProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3691994(19-36)Online publication date: 10-Jul-2024
      • (2024)JolteonProceedings of the 21st USENIX Symposium on Networked Systems Design and Implementation10.5555/3691825.3691835(167-183)Online publication date: 16-Apr-2024
      • (2024)Feasibility of Application Layer Header Parsing in eBPF and P42024 IFIP Networking Conference (IFIP Networking)10.23919/IFIPNetworking62109.2024.10619855(475-481)Online publication date: 3-Jun-2024
      • (2024)Serverful Functions: Leveraging Servers in Complex Serverless Workflows (industry track)Proceedings of the 25th International Middleware Conference Industrial Track10.1145/3700824.3701095(15-21)Online publication date: 2-Dec-2024
      • (2024)SURE: Secure Unikernels Make Serverless Computing Rapid and EfficientProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698558(668-688)Online publication date: 20-Nov-2024
      • (2024)Performance-Centric Communication in Serverless Functions With TCP Hole PunchingProceedings of the 2024 10th International Conference on Computer Technology Applications10.1145/3674558.3674573(109-115)Online publication date: 15-May-2024
      • (2024)bypass4netns: Accelerating TCP/IP Communications in Rootless ContainersProceedings of the Asian Internet Engineering Conference 202410.1145/3674213.3674221(67-75)Online publication date: 9-Aug-2024
      • (2024)hyDNS: Acceleration of DNS Through Kernel Space ResolutionProceedings of the ACM SIGCOMM 2024 Workshop on eBPF and Kernel Extensions10.1145/3672197.3673439(58-64)Online publication date: 4-Aug-2024
      • (2024)BOAD: Optimizing Distributed Communication with In-Kernel Broadcast and AggregationProceedings of the ACM SIGCOMM 2024 Workshop on eBPF and Kernel Extensions10.1145/3672197.3673438(51-57)Online publication date: 4-Aug-2024
      • Show More Cited By

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Login options

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media