[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3302424.3303978acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article
Open access

Replayable Execution Optimized for Page Sharing for a Managed Runtime Environment

Published: 25 March 2019 Publication History

Abstract

We present Replayable Execution, a system for improving the efficiency of Function-as-a-Service (FaaS) frameworks. It takes advantage of standard kernel features to reduce memory usage and accelerate cold startup speed without changes to the OS kernel, language runtimes, and the surrounding FaaS deployment environment. Replayable Execution exploits the intensive-deflated execution characteristics of the majority of target applications. It uses checkpointing to save an image of an application, allowing this image to be shared across containers and resulting in speedy restoration at service startup. We apply Replayable Execution to a representative FaaS Java framework to create a ReplayableJVM execution, which together with benefits from deterministic execution of a warmed up runtime, offers 2X memory footprint reduction, and over 10X startup time improvement.

References

[1]
{n. d.}. Memory Accounting. https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt.
[2]
{n. d.}. pid_namespaces(7) Linux Manual Page.
[3]
{n. d.}. proc(5) Linux Manual Page.
[4]
2005. Multitasking Virtual Machine. http://www.javalobby.org/java/forums/t19780.html?start=150.
[5]
2013. SOFT-DIRTY PTEs. https://www.kernel.org/doc/Documentation/vm/soft-dirty.txt.
[6]
2016. Leveraging AppCDS to Optimize Application Startup and Memory Footprint in the Cloud. https://www.youtube.com/watch?v=dRw77QDSL-A.
[7]
2016. Netty Unix Domain Socket Server. https://github.com/dandaso/netty_uds/.
[8]
2016. OpenStack Functions-as-a-Service (Picasso). https://launchpad.net/picasso.
[9]
2016. Spring Cloud Microservice Example. https://github.com/kbastani/spring-cloud-microservice-example.
[10]
2017. CRIU: Restorer Context. https://criu.org/Restorer_context.
[11]
2017. dmtcp. http://dmtcp.sourceforge.net/downloads.html.
[12]
2017. Optimizing Enterprise Economics with Serverless Architectures. https://d0.awsstatic.com/whitepapers/optimizing-enterprise-economics-serverless-architectures.pdf.
[13]
2017. Use the OverlayFS storage driver. https://docs.docker.com/storage/storagedriver/overlayfs-driver/.
[14]
2018. Apache Tomcat 9. http://tomcat.apache.org/tomcat-9.0-doc/introduction.html.
[15]
2018. AWS Lambda. https://aws.amazon.com/lambda/.
[16]
2018. Azure Functions. https://azure.microsoft.com/en-us/services/functions/.
[17]
2018. Cloud Functions Cold Boot Time. https://www.youtube.com/watch?v=IOXrwFqR6kY.
[18]
2018. Cloud Functions Cold Boot Time. https://www.youtube.com/watch?v=IOXrwFqR6kY.
[19]
2018. Cloudflare Workers. https://www.cloudflare.com/products/cloudflare-workers/.
[20]
2018. Containers At Google. https://cloud.google.com/containers/.
[21]
2018. criu. https://criu.org/Main_Page.
[22]
2018. Google Cloud Functions. https://cloud.google.com/functions/.
[23]
2018. IBM Cloud Functions. https://www.ibm.com/cloud/functions.
[24]
2018. Java Platform, Standard Edition Tools Reference. https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html/.jstat.
[25]
2018. nailgun. https://github.com/facebook/nailgun/.
[26]
2018. Netty Project. https://netty.io/.
[27]
2018. nodejs. https://nodejs.org/en/blog/release/v0.6.10/.
[28]
2018. Oracle FN. http://fnproject.io/.
[29]
2018. Overview of Android Memory Management. https://developer.android.com/topic/performance/memory-overview.html.
[30]
2018. Qinling. https://github.com/openstack/qinling.
[31]
2018. ReadyNow! Solving the Java warm-up issue in low-latency systems by Azul Systems. https://www.azul.com/products/zing/readynow-technology-for-zing/.
[32]
2018. tornado. https://https://www.tornadoweb.org/en/stable/.
[33]
2018. Understanding Container Reuse in AWS Lambda. https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/.
[34]
2018. Unsplash - Photos for everyone. https://unsplash.com/search/photos/high-resolution/.
[35]
Godmar Back, Wilson C. Hsieh, and Jay Lepreau. 2000. Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java. In In Proceedings of the 4th Symposium on Operating Systems Design and Implementation. 333--346.
[36]
D. Bhattacharya, K. B. Kent, E. Aubanel, D. Heidinga, P. Shipton, and A. Micic. 2017. Improving the performance of JVM startup using the shared class cache. In 2017 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM). 1--6.
[37]
Erik Bosman and Herbert Bos. 2014. Framing Signals - A Return to Portable Shellcode. In Proceedings of the 2014 IEEE Symposium on Security and Privacy (SP '14). IEEE Computer Society, Washington, DC, USA, 243--258.
[38]
Rodrigo Bruno and Paulo Ferreira. 2016. ALMA: GC-assisted JVM Live Migration for Java Server Applications. In Proceedings of the 17th International Middleware Conference (Middleware '16). ACM, New York, NY, USA, Article 5, 14 pages.
[39]
Adrian Cockcroft. 2017. Shrinking Microservices to Functions. (2017). https://www.youtube.com/watch?v=ZgxZCXouBkY microXchg 2017.
[40]
Grzegorz Czajkowski and Laurent Daynès. 2001. Multitasking without Compromise: A Virtual Machine Evolution. In Proceedings of the 2001 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA 2001, Tampa, Florida, USA, October 14-18, 2001., Linda M. Northrop and John M. Vlissides (Eds.). ACM, 125--138.
[41]
Grzegorz Czajkowski, Laurent Daynès, and Nathaniel Nystrom. 2002. Code Sharing Among Virtual Machines. In Proceedings of the 16th European Conference on Object-Oriented Programming (ECOOP '02). Springer-Verlag, London, UK, UK, 155--177. http://dl.acm.org/citation.cfm?id=646159.758681
[42]
Grzegorz Czajkowski, Stephen Hahn, Glenn Skinner, Pete Soper, and Ciarán Bryce. 2003. A Resource Management Interface for the Java Platform. Technical Report SMLITR-2003-124. Mountain View, CA, USA.
[43]
Nigel Daniels. 2014. Securing the JVM. JVM Language Summit 2014 (2014).
[44]
Peter J. Denning. 1967. The Working Set Model for Program Behavior. In Proceedings of the First ACM Symposium on Operating System Principles (SOSP '67). ACM, New York, NY, USA, 15.1--15.12.
[45]
Nicolas Geoffray, Gaël Thomas, Gilles Muller, Pierre Parrend, Stéphane Frénot, and Bertil Folliot. 2009. I-JVM: a Java Virtual Machine for component isolation in OSGi. 2009 IEEE/IFIP International Conference on Dependable Systems and Networks (2009), 544--553.
[46]
Paul H Hargrove and Jason C Duell. 2006. Berkeley lab checkpoint/restart (BLCR) for Linux clusters. Journal of Physics: Conference Series 46, 1 (2006), 494. http://stacks.iop.org/1742-6596/46/i=1/a=067
[47]
Chris Hawblitzel, Chi-Chao Chang, Grzegorz Czajkowski, Deyu Hu, and Thorsten von Eicken. 1998. Implementing Multiple Protection Domains in Java. In Proceedings of the Annual Conference on USENIX Annual Technical Conference (ATEC '98). USENIX Association, Berkeley, CA, USA, 22--22. http://dl.acm.org/citation.cfm?id=1268256.1268278
[48]
Jim Huang and Kito Cheng. 2012. Implement Checkpointing for Android. In Embedded Linux Conference Europe. Las Vegas, NV. https://elinux.org/images/1/1c/Implement_Checkpointing_for_Android.pdf
[49]
Kiyokuni Kawachiya, Kazunori Ogata, Daniel Silva, Tamiya Onodera, Hideaki Komatsu, and Toshio Nakatani. 2007. Cloneable JVM: A New Approach to Start Isolated Java Applications Faster. In Proceedings of the 3rd International Conference on Virtual Execution Environments (VEE '07). ACM, New York, NY, USA, 1--11.
[50]
Avi Kivity, Dor Laor, Glauber Costa, Pekka Enberg, Nadav Har'El, Don Marti, and Vlad Zolotarov. 2014. OSv: Optimizing the Operating System for Virtual Machines. In Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference (USENIX ATC'14). USENIX Association, Berkeley, CA, USA, 61--72. http://dl.acm.org/citation.cfm?id=2643634.2643642
[51]
Li Li, Yunhao Bai, Xiaorui Wang, Mai Zheng, and Feng Qin. 2017. Selective checkpointing for minimizing recovery energy and efforts of smartphone apps. In Eighth International Green and Sustainable Computing Conference, IGSC 2017, Orlando, FL, USA, October 23-25, 2017. IEEE, 1--8.
[52]
San Hong Li. 2017. Optimizing JVM at Alibaba, for e-commerce apps running on 100,000+ servers. JVM Language Summit 2017 (2017).
[53]
Sheng Liang and Gilad Bracha. 1998. Dynamic Class Loading in the Java Virtual Machine. In Proceedings of the 13th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA '98). ACM, New York, NY, USA, 36--44.
[54]
Tim Lindholm, Frank Yellin, Gilad Bracha, and Alex Buckley. 2014. The Java Virtual Machine Specification, Java SE 8 Edition (1st ed.). Addison-Wesley Professional.
[55]
David Lion, Adrian Chiu, Hailong Sun, Xin Zhuang, Nikola Grcevski, and Ding Yuan. 2016. Don't Get Caught in the Cold, Warm-up Your JVM: Understand and Eliminate JVM Warm-up Overhead in Data-Parallel Systems. In 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16). USENIX Association, Savannah, GA, 383--400. https://www.usenix.org/conference/osdi16/technical-sessions/presentation/lion
[56]
Robert O'Callahan, Chris Jones, Nathan Froyd, Kyle Huey, Albert Noll, and Nimrod Partush. 2017. Engineering Record and Replay for Deployability In 2017 USENIX Annual Technical Conference (USENIX ATC 17). USENIX Association, Santa Clara, CA, 377--389. https://www.usenix.org/conference/atc17/technical-sessions/presentation/ocallahan
[57]
Kazunori Ogata, Dai Mikurube, Kiyokuni Kawachiya, Scott Trent, and Tamiya Onodera. 2010. A study of Java's non-Java memory. In OOPSLA, William R. Cook and Martin C. Clarke, SiobhÃąand Rinard (Eds.). ACM, 191--204. http://dblp.uni-trier.de/db/conf/oopsla/oopsla2010.html#OgataMKTO10
[58]
Carl A. Waldspurger. 2002. Memory Resource Management in VMware ESX Server. SIGOPS Oper. Syst. Rev. 36, SI (Dec. 2002), 181--194.
[59]
Liang Wang, Mengyuan Li, Yinqian Zhang, Thomas Ristenpart, and Michael Swift. 2018. Peeking Behind the Curtains of Serverless Platforms. In 2018 USENIX Annual Technical Conference (USENIX ATC 18). USENIX Association, Boston, MA, 133--146. https://www.usenix.org/conference/atc18/presentation/wang-liang
[60]
Peter Whitehead. 2014. Multitenancy and the Multi Tenant Java Virtual Machine. In Impact2014. Las Vegas, NV. file:///C:/Users/k00375917/ Downloads/Impact2014_MT_2014040.pdf
[61]
Bernard Wong, Grzegorz Czajkowski, and Laurent DaynÃĺ. {n. d.}. Dynamically Loaded Classes as Shared Libraries: an Approach to Improving Virtual Machine Scalability.
[62]
Weiming Zhao and Zhenlin Wang. 2009. Dynamic Memory Balancing for Virtual Machines. In Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE '09). ACM, New York, NY, USA, 21--30.

Cited By

View all
  • (2024)Serverless computing based on dynamic-addressable sessionSCIENTIA SINICA Informationis10.1360/SSI-2023-015554:3(582)Online publication date: 11-Mar-2024
  • (2024)Cold Start Latency in Serverless Computing: A Systematic Review, Taxonomy, and Future DirectionsACM Computing Surveys10.1145/370087557:3(1-36)Online publication date: 11-Nov-2024
  • (2024)Snapipeline: Accelerating Snapshot Startup for FaaS ContainersProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698513(144-159)Online publication date: 20-Nov-2024
  • Show More Cited By

Index Terms

  1. Replayable Execution Optimized for Page Sharing for a Managed Runtime Environment

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    EuroSys '19: Proceedings of the Fourteenth EuroSys Conference 2019
    March 2019
    714 pages
    ISBN:9781450362818
    DOI:10.1145/3302424
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 March 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Cloud Computing
    2. Operating Systems
    3. Programming Languages and Runtimes

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    EuroSys '19
    Sponsor:
    EuroSys '19: Fourteenth EuroSys Conference 2019
    March 25 - 28, 2019
    Dresden, Germany

    Acceptance Rates

    Overall Acceptance Rate 241 of 1,308 submissions, 18%

    Upcoming Conference

    EuroSys '25
    Twentieth European Conference on Computer Systems
    March 30 - April 3, 2025
    Rotterdam , Netherlands

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)332
    • Downloads (Last 6 weeks)52
    Reflects downloads up to 13 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Serverless computing based on dynamic-addressable sessionSCIENTIA SINICA Informationis10.1360/SSI-2023-015554:3(582)Online publication date: 11-Mar-2024
    • (2024)Cold Start Latency in Serverless Computing: A Systematic Review, Taxonomy, and Future DirectionsACM Computing Surveys10.1145/370087557:3(1-36)Online publication date: 11-Nov-2024
    • (2024)Snapipeline: Accelerating Snapshot Startup for FaaS ContainersProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698513(144-159)Online publication date: 20-Nov-2024
    • (2024)Characterization and Reclamation of Frozen Garbage in Managed FaaS WorkloadsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629579(281-297)Online publication date: 22-Apr-2024
    • (2024)Pronghorn: Effective Checkpoint Orchestration for Serverless Hot-StartsProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629556(298-316)Online publication date: 22-Apr-2024
    • (2024)Faast: An Efficient Serverless Framework Made Snapshot-based Function Response FastProceedings of the 33rd International Symposium on High-Performance Parallel and Distributed Computing10.1145/3625549.3658681(174-185)Online publication date: 3-Jun-2024
    • (2024)Incendio: Priority-Based Scheduling for Alleviating Cold Start in Serverless ComputingIEEE Transactions on Computers10.1109/TC.2024.338606373:7(1780-1794)Online publication date: Jul-2024
    • (2024)Implications for Running AI Applications on Serverless Platforms2024 IEEE 24th International Conference on Software Quality, Reliability, and Security Companion (QRS-C)10.1109/QRS-C63300.2024.00085(633-642)Online publication date: 1-Jul-2024
    • (2024)A survey on the cold start latency approaches in serverless computing: an optimization-based perspectiveComputing10.1007/s00607-024-01335-5106:11(3755-3809)Online publication date: 17-Aug-2024
    • (2024)Evaluation of Programming Languages for Memory Usage, Scalability, and Cold Start, on AWS Lambda Serverless Platform as a Case StudyComputer Science – CACIC 202310.1007/978-3-031-62245-8_3(33-45)Online publication date: 23-Jun-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

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media