skip to main content
research-article

FaaSLight: General Application-level Cold-start Latency Optimization for Function-as-a-Service in Serverless Computing

Published:22 July 2023Publication History
Skip Abstract Section

Abstract

Serverless computing is a popular cloud computing paradigm that frees developers from server management. Function-as-a-Service (FaaS) is the most popular implementation of serverless computing, representing applications as event-driven and stateless functions. However, existing studies report that functions of FaaS applications severely suffer from cold-start latency.

In this article, we propose an approach, namely, FaaSLight, to accelerating the cold start for FaaS applications through application-level optimization. We first conduct a measurement study to investigate the possible root cause of the cold-start problem of FaaS. The result shows that application code loading latency is a significant overhead. Therefore, loading only indispensable code from FaaS applications can be an adequate solution. Based on this insight, we identify code related to application functionalities by constructing the function-level call graph and separate other code (i.e., optional code) from FaaS applications. The separated optional code can be loaded on demand to avoid the inaccurate identification of indispensable code causing application failure. In particular, a key principle guiding the design of FaaSLight is inherently general, i.e., platform- and language-agnostic. In practice, FaaSLight can be effectively applied to FaaS applications developed in different programming languages (Python and JavaScript), and can be seamlessly deployed on popular serverless platforms such as AWS Lambda and Google Cloud Functions, without having to modify the underlying OSes or hypervisors, nor introducing any additional manual engineering efforts to developers. The evaluation results on real-world FaaS applications show that FaaSLight can significantly reduce the code loading latency (up to 78.95%, 28.78% on average), thereby reducing the cold-start latency. As a result, the total response latency of functions can be decreased by up to 42.05% (19.21% on average). Compared with the state-of-the-art, FaaSLight achieves a 21.25× improvement in reducing the average total response latency.

REFERENCES

  1. [1] 2016. Image resize. Retrieved on November 10, 2021 from https://github.com/gxx/aws-lambda-python/tree/master/image_resize.Google ScholarGoogle Scholar
  2. [2] 2017. Lambda Pandas. Retrieved on November 10, 2021 from https://github.com/nicor88/aws-python-lambdas/tree/master/src/hello_pandas.Google ScholarGoogle Scholar
  3. [3] 2017. Python OpenCV module for AWS Lambda. Retrieved on November 10, 2021 from https://github.com/aeddi/aws-lambda-python-opencv.Google ScholarGoogle Scholar
  4. [4] 2017. TensorFlow to AWS Lambda. Retrieved on November 10, 2021 from https://github.com/jacopotagliabue/tensorflow_to_lambda_serverless.Google ScholarGoogle Scholar
  5. [5] 2018. 2018 serverless community survey: huge growth in serverless usage. Retrieved on May 01, 2022 from https://www.serverless.com/blog/2018-serverless-community-survey-huge-growth-usage.Google ScholarGoogle Scholar
  6. [6] 2019. AWS Lambda to predict the quality of your wine. Retrieved on November 10, 2021 from https://github.com/pierreant/wine-ml-on-aws-lambda.Google ScholarGoogle Scholar
  7. [7] 2019. Lxml requests. Retrieved on November 10, 2021 from https://github.com/ryfeus/lambda-packs/tree/master/Lxml_requests.Google ScholarGoogle Scholar
  8. [8] 2019. OpenCV PIL. Retrieved on November 10, 2021 from https://github.com/ryfeus/lambda-packs/tree/master/Opencv_pil.Google ScholarGoogle Scholar
  9. [9] 2019. Pandas NumPy. Retrieved on November 10, 2021 from https://github.com/ryfeus/lambda-packs/tree/master/Pandas_numpy.Google ScholarGoogle Scholar
  10. [10] 2019. Scikit example. Retrieved on November 10, 2021 from https://github.com/mpavlovic/serverless-machine-learning/tree/master/scikit-example.Google ScholarGoogle Scholar
  11. [11] 2019. Skimage NumPy. Retrieved on November 10, 2021 from https://github.com/ryfeus/lambda-packs/tree/master/Skimage_numpy.Google ScholarGoogle Scholar
  12. [12] 2019. Terraform AWS Lambda Python. Retrieved on November 10, 2021 from https://github.com/ruzin/terraform_aws_lambda_python/tree/master/example.Google ScholarGoogle Scholar
  13. [13] 2020. AWS Lambda container image support. Retrieved on May 01, 2022 from https://aws.amazon.com/cn/blogs/aws/new-for-aws-lambda-container-image-support/.Google ScholarGoogle Scholar
  14. [14] 2020. The CIO’s guide to serverless computing. Retrieved on May 01, 2022 from https://www.gartner.com/smarterwithgartner/the-cios-guide-to-serverless-computing/.Google ScholarGoogle Scholar
  15. [15] 2020. Sentiment analysis in the Cloud with AWS Lambda. Retrieved on November 10, 2021 from https://github.com/cloudacademy/sentiment-analysis-aws-lambda.Google ScholarGoogle Scholar
  16. [16] 2020. Serverless Bert hugging face AWS Lambda docker. Retrieved on November 10, 2021 from https://github.com/philschmid/serverless-bert-huggingface-aws-lambda-docker.Google ScholarGoogle Scholar
  17. [17] 2021. Comparison of cold starts in serverless functions across AWS, Azure, and GCP. Retrieved on May 01, 2022 from https://mikhail.io/serverless/coldstarts/big3/.Google ScholarGoogle Scholar
  18. [18] 2021. LightGBM Sklearn Scipy NumPy. Retrieved on November 10, 2021 from https://github.com/ryfeus/lambda-packs/tree/master/LightGBM_sklearn_scipy_numpy.Google ScholarGoogle Scholar
  19. [19] 2021. Python static analysis tools. Retrieved on May 01, 2022 from https://camelcaseguy.medium.com/python-static-analysis-tools-fe5960d8035.Google ScholarGoogle Scholar
  20. [20] 2021. Top 4 serverless computing platforms in 2021. Retrieved from https://www.loginradius.com/blog/async/serverless-overview/. Retrieved on November 10, 2021 .Google ScholarGoogle Scholar
  21. [21] 2021. Top 5 serverless platforms in 2021. Retrieved on November 10, 2021 from https://www.techmagic.co/blog/top-5-serverless-platforms-in-2020/.Google ScholarGoogle Scholar
  22. [22] 2021. Vulture—Find dead code. Retrieved on May 01, 2022 from https://github.com/jendrikseipp/vulture.Google ScholarGoogle Scholar
  23. [23] 2022. Advanced Topics in Programming Languages. Retrieved on September 01, 2022 from https://groups.seas.harvard.edu/courses/cs252/2011sp/.Google ScholarGoogle Scholar
  24. [24] 2022. Ast for Python. Retrieved on May 01, 2022 from https://docs.python.org/3/library/ast.html.Google ScholarGoogle Scholar
  25. [25] 2022. Astroid. Retrieved on February 01, 2022 from https://pylint.pycqa.org/projects/astroid/en/latest/.Google ScholarGoogle Scholar
  26. [26] 2022. AWS Lambda. Retrieved on May 01, 2022 from https://docs.aws.amazon.com/lambda/latest/dg/welcome.html.Google ScholarGoogle Scholar
  27. [27] 2022. AWS Lambda function handler. Retrieved on December 03, 2022 from https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html.Google ScholarGoogle Scholar
  28. [28] 2022. AWS Lambda NumPy. Retrieved on March 17, 2022 from https://github.com/Haodi-Ping/AWSLambda_numpy.Google ScholarGoogle Scholar
  29. [29] 2022. AWS SAM. Retrieved on November 10, 2021 from https://github.com/aws/aws-sam-cli.Google ScholarGoogle Scholar
  30. [30] 2022. Azure Functions. Retrieved on May 01, 2022 from https://docs.microsoft.com/en-us/azure/azure-functions/.Google ScholarGoogle Scholar
  31. [31] 2022. Callgraph. Retrieved on September 01, 2022 from https://github.com/gunar/callgraph.Google ScholarGoogle Scholar
  32. [32] 2022. Custom-LDA-classifier-model. Retrieved on September 01, 2022 from https://github.com/Haodi-Ping/Custom-LDA-classifier-model.Google ScholarGoogle Scholar
  33. [33] 2022. Effect size. Retrieved on May 01, 2022 from https://en.wikipedia.org/wiki/Effect_size##Cohen's_d.Google ScholarGoogle Scholar
  34. [34] 2022. Google Cloud Functions. Retrieved on May 01, 2022 from https://cloud.google.com/functions.Google ScholarGoogle Scholar
  35. [35] 2022. Google Cloud Functions handler. Retrieved on December 03, 2022 from https://cloud.google.com/functions/docs/writing/write-http-functions.Google ScholarGoogle Scholar
  36. [36] 2022. Google Cloud Functions numpy pandas. Retrieved on September 01, 2022 from https://github.com/ryfeus/gcf-packs/tree/master/pandas_numpy/sources.Google ScholarGoogle Scholar
  37. [37] 2022. Google Cloud Functions Python runtime demo. Retrieved on September 01, 2022 from https://github.com/simonprickett/google-cloud-functions-python.Google ScholarGoogle Scholar
  38. [38] 2022. Google gVisor. Retrieved from https://github.com/google/gvisor. Retrieved on September 01, 2022 .Google ScholarGoogle Scholar
  39. [39] 2022. How can you find unused functions in Python code? Retrieved on May 01, 2022 from https://stackoverflow.com/questions/693070/how-can-you-find-unused-functions-in-python-code.Google ScholarGoogle Scholar
  40. [40] 2022. How To: Optimize the Serverless Optimizer Plugin. Retrieved on September 01, 2022 from https://www.jeremydaly.com/how-to-optimize-the-serverless-optimizer-plugin/.Google ScholarGoogle Scholar
  41. [41] 2022. JavaScript async. Retrieved on November 27, 2022 . from https://bmaupin.github.io/wiki/programming/javascript/javascript-async.html.Google ScholarGoogle Scholar
  42. [42] 2022. Mann–Whitney U test. Retrieved on May 01, 2022 from https://en.wikipedia.org/wiki/Mann-Whitney_U_test.Google ScholarGoogle Scholar
  43. [43] 2022. Microcosm2RSS. Retrieved on September 01, 2022 from https://github.com/conoro/microcosm2rss.Google ScholarGoogle Scholar
  44. [44] 2022. Python—magic or dunder methods. Retrieved on May 01, 2022 from https://www.tutorialsteacher.com/python/magic-methods-in-python.Google ScholarGoogle Scholar
  45. [45] 2022. Quotas of Google Cloud Functions. Retrieved on November 27, 2022 from https://cloud.google.com/functions/quotas.Google ScholarGoogle Scholar
  46. [46] 2022. Serverless Image Processing. Retrieved on September 01, 2022 from https://github.com/unichat-io/serverless-image-processing.Google ScholarGoogle Scholar
  47. [47] 2022. Serverless-lunch. Retrieved on September 01, 2022 from https://github.com/deekim/serverless-lunch.Google ScholarGoogle Scholar
  48. [48] 2022. Serverless Optimize Plugin. Retrieved on September 01, 2022 from https://www.serverless.com/plugins/serverless-plugin-optimize.Google ScholarGoogle Scholar
  49. [49] 2022. Show me a dog. Retrieved on September 01, 2022 from https://github.com/hollandmatt/show-me-a-dog.Google ScholarGoogle Scholar
  50. [50] 2022. The state of serverless. Retrieved on September 01, 2022 from https://www.datadoghq.com/state-of-serverless/.Google ScholarGoogle Scholar
  51. [51] 2022. uglify-js. Retrieved on February 01, 2022 from https://lisperator.net/uglifyjs/.Google ScholarGoogle Scholar
  52. [52] Mikhail.io. 2022. Cold starts in AWS Lambda. Retrieved on May 01, 2022 from https://mikhail.io/serverless/coldstarts/aws/.Google ScholarGoogle Scholar
  53. [53] Mikhail.io. 2022. Cold starts in Azure Functions. Retrieved on May 01, 2022 from https://mikhail.io/serverless/coldstarts/azure/.Google ScholarGoogle Scholar
  54. [54] Adamsen Christoffer Quist, Møller Anders, Alimadadi Saba, and Tip Frank. 2018. Practical AJAX race detection for JavaScript web applications. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 3848.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. [55] Akkus Istemi Ekin, Chen Ruichuan, Rimac Ivica, Stein Manuel, Satzke Klaus, Beck Andre, Aditya Paarijaat, and Hilt Volker. 2018. SAND: Towards high-performance serverless computing. In Proceedings of the USENIX Annual Technical Conference (ATC’18). 923935.Google ScholarGoogle Scholar
  56. [56] Antal Gábor, Hegedus Péter, Tóth Zoltán, Ferenc Rudolf, and Gyimóthy Tibor. 2018. Static javascript call graphs: A comparative study. In Proceedings of the IEEE 18th International Working Conference on Source Code Analysis and Manipulation. IEEE, 177186.Google ScholarGoogle Scholar
  57. [57] Ao Lixiang, Izhikevich Liz, Voelker Geoffrey M., and Porter George. 2018. Sprocket: A serverless video processing framework. In Proceedings of the ACM Symposium on Cloud Computing (SoCC’18). 263274.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Azad Babak Amin, Laperdrix Pierre, and Nikiforakis Nick. 2019. Less is more: Quantifying the security benefits of debloating web applications. In Proceedings of the 28th USENIX Security Symposium (USENIX Security’19). 16971714.Google ScholarGoogle Scholar
  59. [59] Brown Michael D. and Pande Santosh. 2019. Carve: Practical security-focused software debloating using simple feature set mappings. In Proceedings of the 3rd ACM Workshop on Forming an Ecosystem Around Software Transformation. 17.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Bruce Bobby R., Zhang Tianyi, Arora Jaspreet, Xu Guoqing Harry, and Kim Miryung. 2020. JShrink: In-depth investigation into debloating modern Java applications. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE’20). 135146.Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Carreira Joao, Fonseca Pedro, Tumanov Alexey, Zhang Andrew, and Katz Randy. 2019. Cirrus: A serverless framework for end-to-end ML workflows. In Proceedings of the ACM Symposium on Cloud Computing (SoCC’19). 1324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Chatley Robert and Allerton Thomas. 2020. Nimbus: Improving the developer experience for serverless applications. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. 8588.Google ScholarGoogle Scholar
  63. [63] Dean Jeffrey, Grove David, and Chambers Craig. 1995. Optimization of object-oriented programs using static class hierarchy analysis. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP’95). Springer, 77101.Google ScholarGoogle ScholarCross RefCross Ref
  64. [64] Du Dong, Yu Tianyi, Xia Yubin, Zang Binyu, Yan Guanglu, Qin Chenggang, Wu Qixuan, and Chen Haibo. 2020. Catalyzer: Sub-millisecond startup for serverless computing with initialization-less booting. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’20). ACM, 467481.Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Eismann Simon, Scheuner Joel, Eyk Erwin Van, Schwinger Maximilian, Grohmann Johannes, Herbst Nikolas, Abad Cristina, and Iosup Alexandru. 2022. The state of serverless applications: Collection, characterization, and community consensus. IEEE Trans. Softw. Eng. 48, 10 (2022), 4152–4166.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. [66] Eskandani Nafise and Salvaneschi Guido. 2021. The wonderless dataset for serverless computing. In Proceedings of the IEEE/ACM 18th International Conference on Mining Software Repositories. IEEE, 565569.Google ScholarGoogle ScholarCross RefCross Ref
  67. [67] Feng Lang, Kudva Prabhakar, Silva Dilma Da, and Hu Jiang. 2018. Exploring serverless computing for neural network training. In Proceedings of the IEEE 11th International Conference on Cloud Computing (CLOUD’18). 334341.Google ScholarGoogle ScholarCross RefCross Ref
  68. [68] Fouladi Sadjad, Romero Francisco, Iter Dan, Li Qian, Chatterjee Shuvo, Kozyrakis Christos, Zaharia Matei, and Winstein Keith. 2019. From laptop to lambda: Outsourcing everyday jobs to thousands of transient functional containers. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC’19). 475488.Google ScholarGoogle Scholar
  69. [69] Fouladi Sadjad, Wahby Riad S, Shacklett Brennan, Balasubramaniam Karthikeyan Vasuki, Zeng William, Bhalerao Rahul, Sivaraman Anirudh, Porter George, and Winstein Keith. 2017. Encoding, fast and slow: Low-latency video processing using thousands of tiny threads. In Proceedings of the USENIX Symposium on Networked Systems Design and Implementation (NSDI’17). 363376.Google ScholarGoogle Scholar
  70. [70] Fuerst Alexander and Sharma Prateek. 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 (ASPLOS’21). 386400.Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. [71] Haas Roman, Niedermayr Rainer, Roehm Tobias, and Apel Sven. 2020. Is static analysis able to identify unnecessary source code? ACM Trans. Softw. Eng. Methodol. 29, 1 (2020), 123.Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. [72] Wu Joseph M. Hellerstein, Jose Faleiro, Joseph E. Gonzalez, Johann Schleier-Smith, Vikram Sreekanti, Alexey Tumanov, and Chenggang. 2019. Serverless computing: One step forward, two steps back. In Proceedings of the 9th Biennial Conference on Innovative Data Systems Research. Retrieved from www.cidrdb.org.Google ScholarGoogle Scholar
  73. [73] Henderson Andrew, Prakash Aravind, Yan Lok Kwong, Hu Xunchao, Wang Xujiewen, Zhou Rundong, and Yin Heng. 2014. Make it work, make it right, make it fast: Building a platform-neutral whole-system dynamic binary analysis platform. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA’14). 248258.Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. [74] Heo Kihong, Lee Woosuk, Pashakhanloo Pardis, and Naik Mayur. 2018. Effective program debloating via reinforcement learning. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS’18). 380394.Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. [75] Jensen Casper S., Møller Anders, Raychev Veselin, Dimitrov Dimitar, and Vechev Martin. 2015. Stateless model checking of event-driven applications. ACM SIGPLAN Notices 50, 10 (2015), 5773.Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. [76] Jia Zhipeng and Witchel Emmett. 2021. Nightcore: Efficient and scalable serverless computing for latency-sensitive, interactive microservices. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems. 152166.Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. [77] Jonas Eric, Schleier-Smith Johann, Sreekanti Vikram, Tsai Chia-Che, Khandelwal Anurag, Pu Qifan, Shankar Vaishaal, Carreira Joao, Krauth Karl, Yadwadkar Neeraja, Gonzalez Joseph E., Popa Raluca Ada, Stoica Ion, and Patterson David A.. 2019. Cloud programming simplified: A Berkeley view on serverless computing. Retrieved from https://arXiv:1902.03383.Google ScholarGoogle Scholar
  78. [78] Klimovic Ana, Wang Yawen, Stuedi Patrick, Trivedi Animesh, Pfefferle Jonas, and Kozyrakis Christos. 2018. Pocket: Elastic ephemeral storage for serverless analytics. In Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI’18). 427444.Google ScholarGoogle Scholar
  79. [79] Kupoluyi Tofunmi, Chaqfeh Moumena, Varvello Matteo, Hashmi Waleed, Subramanian Lakshmi, and Zaki Yasir. 2021. Muzeel: A dynamic JavaScript analyzer for dead code elimination in today’s web. Retrieved from https://arXiv:2106.08948.Google ScholarGoogle Scholar
  80. [80] Lee Hyungro, Satyam Kumar, and Fox Geoffrey. 2018. Evaluation of production serverless computing environments. In Proceedings of the IEEE 11th International Conference on Cloud Computing. IEEE, 442450.Google ScholarGoogle ScholarCross RefCross Ref
  81. [81] Liu Ming, Peter Simon, Krishnamurthy Arvind, and Phothilimthana Phitchaya Mangpo. 2019. E3: Energy-efficient microservices on smartNIC-accelerated servers. In Proceedings of the USENIX Annual Technical Conference (ATC’19). 363378.Google ScholarGoogle Scholar
  82. [82] Liu Xuanzhe, Huang Gang, Zhao Qi, Mei Hong, and Blake M. Brian. 2014. iMashup: A mashup-based framework for service composition. Sci. China Inf. Sci. 57, 1 (2014), 120.Google ScholarGoogle ScholarCross RefCross Ref
  83. [83] Liu Xuanzhe, Hui Yi, Sun Wei, and Liang Haiqi. 2007. Towards service composition based on mashup. In Proceedings of the IEEE International Conference on Services Computing Workshops (SCW’07). IEEE Computer Society, 332339.Google ScholarGoogle ScholarCross RefCross Ref
  84. [84] Mohanty Sunil Kumar, Premsankar Gopika, and Francesco Mario Di. 2018. An evaluation of open source serverless computing frameworks. In Proceedings of the IEEE 10th International Conference on Cloud Computing Technology and Science (CloudCom’18). 115120.Google ScholarGoogle ScholarCross RefCross Ref
  85. [85] Oakes Edward, Yang Leon, Zhou Dennis, Houck Kevin, Harter Tyler, Arpaci-Dusseau Andrea, and Arpaci-Dusseau Remzi. 2018. SOCK: Rapid task provisioning with serverless-optimized containers. In Proceedings of the USENIX Annual Technical Conference (ATC’18). USENIX Association, 5770.Google ScholarGoogle Scholar
  86. [86] Obbink Niels Groot, Malavolta Ivano, Scoccia Gian Luca, and Lago Patricia. 2018. An extensible approach for taming the challenges of JavaScript dead code elimination. In Proceedings of IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER’18). 291401.Google ScholarGoogle ScholarCross RefCross Ref
  87. [87] Palma Giuseppe De, Giallorenzo Saverio, Mauro Jacopo, and Zavattaro Gianluigi. 2020. Allocation priority policies for serverless function-execution scheduling optimisation. In Proceedings of the International Conference on Service-Oriented Computing. Springer, 416430.Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. [88] Pelle István, Czentye János, Dóka János, Kern András, Gerő Balázs P., and Sonkoly Balázs. 2020. Operating latency sensitive applications on public serverless edge cloud platforms. IEEE Internet Things J. 8, 10 (2020), 79547972.Google ScholarGoogle ScholarCross RefCross Ref
  89. [89] Pham Hung Viet, Qian Shangshu, Wang Jiannan, Lutellier Thibaud, Rosenthal Jonathan, Tan Lin, Yu Yaoliang, and Nagappan Nachiappan. 2020. Problems and opportunities in training deep learning software systems: An analysis of variance. In Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering (ASE’20). 771783.Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. [90] Pu Qifan, Venkataraman Shivaram, and Stoica Ion. 2019. Shuffling, fast and slow: Scalable analytics on serverless infrastructure. In Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI’19). 193206.Google ScholarGoogle Scholar
  91. [91] Qian Chenxiong, Hu Hong, Alharthi Mansour, Chung Pak Ho, Kim Taesoo, and Lee Wenke. 2019. RAZOR: A framework for post-deployment software debloating. In Proceedings of the 28th USENIX Security Symposium (USENIX Security’19). 17331750.Google ScholarGoogle Scholar
  92. [92] Quach Anh, Erinfolami Rukayat, Demicco David, and Prakash Aravind. 2017. A multi-OS cross-layer study of bloating in user programs, kernel and managed execution environments. In Proceedings of the Workshop on Forming an Ecosystem Around Software Transformation, FEAST 2017. 6570.Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. [93] Quach Anh, Prakash Aravind, and Yan Lok. 2018. Debloating software through piece-wise compilation and loading. In Proceedings of the 27th USENIX Security Symposium. 869886.Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. [94] Romano Simone, Vendome Christopher, Scanniello Giuseppe, and Poshyvanyk Denys. 2018. A multi-study investigation into dead code. IEEE Trans. Softw. Eng. 46, 1 (2018), 7199.Google ScholarGoogle ScholarCross RefCross Ref
  95. [95] Sampé Josep, Garcia-Lopez Pedro, Sánchez-Artigas Marc, Vernik Gil, Roca-Llaberia Pol, and Arjona Aitor. 2020. Toward multicloud access transparency in serverless computing. IEEE Softw. 38, 1 (2020), 6874.Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. [96] Shahrad Mohammad, Fonseca Rodrigo, Goiri Íñigo, Chaudhry Gohar, Batum Paul, Cooke Jason, Laureano Eduardo, Tresness Colby, Russinovich Mark, and Bianchini Ricardo. 2020. Serverless in the wild: Characterizing and optimizing the serverless workload at a large cloud provider. In Proceedings of the USENIX Annual Technical Conference, (ATC’20). 205218.Google ScholarGoogle Scholar
  97. [97] Shankar Vaishaal, Krauth Karl, Vodrahalli Kailas, Pu Qifan, Recht Benjamin, Stoica Ion, Ragan-Kelley Jonathan, Jonas Eric, and Venkataraman Shivaram. 2020. Serverless linear algebra. In Proceedings of the ACM Symposium on Cloud Computing (SoCC’20). 281295.Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. [98] Sharif Hashim, Abubakar Muhammad, Gehani Ashish, and Zaffar Fareed. 2018. TRIMMER: Application specialization for code debloating. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE’18). 329339.Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. [99] Shillaker Simon and Pietzuch Peter. 2020. Faasm: Lightweight isolation for efficient stateful serverless computing. In Proceedings of the USENIX Annual Technical Conference. 419433.Google ScholarGoogle Scholar
  100. [100] Silva Paulo, Fireman Daniel, and Pereira Thiago Emmanuel. 2020. Prebaking functions to warm the serverless cold start. In Proceedings of the 21st International Middleware Conference. 113.Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. [101] Singhvi Arjun, Balasubramanian Arjun, Houck Kevin, Shaikh Mohammed Danish, Venkataraman Shivaram, and Akella Aditya. 2021. Atoll: A scalable low-latency serverless platform. In Proceedings of the ACM Symposium on Cloud Computing (SoCC’21). 138152.Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. [102] Taibi Davide, Spillner Josef, and Wawruch Konrad. 2020. Serverless computing-where are we now, and where are we heading? IEEE Softw. 38, 1 (2020), 2531.Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. [103] Tariq Ali, Pahl Austin, Nimmagadda Sharat, Rozner Eric, and Lanka Siddharth. 2020. Sequoia: Enabling quality-of-service in serverless computing. In Proceedings of the ACM Symposium on Cloud Computing (SoCC’20). 311327.Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. [104] Vahidinia Parichehr, Farahani Bahar, and Aliee Fereidoon Shams. 2020. Cold start in serverless computing: Current trends and mitigation strategies. In Proceedings of the International Conference on Omni-layer Intelligent Systems. IEEE, 17.Google ScholarGoogle Scholar
  105. [105] Wang Ao, Chang Shuai, Tian Huangshi, Wang Hongqi, Yang Haoran, Li Huiba, Du Rui, and Cheng Yue. 2021. FaaSNet: Scalable and fast provisioning of custom serverless container runtimes at Alibaba cloud function compute. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC’21). 443457.Google ScholarGoogle Scholar
  106. [106] Wang Kai-Ting Amy, Ho Rayson, and Wu Peng. 2019. Replayable execution optimized for page sharing for a managed runtime environment. In Proceedings of the 14th EuroSys Conference (EuroSys’19). 116.Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. [107] Wang Liang, Li Mengyuan, Zhang Yinqian, Ristenpart Thomas, and Swift Michael. 2018. Peeking behind the curtains of serverless platforms. In Proceedings of the USENIX Annual Technical Conference (ATC’18). 133146.Google ScholarGoogle Scholar
  108. [108] Wen Jinfeng, Chen Zhenpeng, Jin Xin, and Liu Xuanzhe. 2023. Rise of the planet of serverless computing: A systematic review. ACM Trans. Softw. Eng. Methodol. (2023).Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. [109] Wen Jinfeng, Chen Zhenpeng, Liu Yi, Lou Yiling, Ma Yun, Huang Gang, Jin Xin, and Liu Xuanzhe. 2021. An empirical study on challenges of application development in serverless computing. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE’21). 416428.Google ScholarGoogle ScholarDigital LibraryDigital Library
  110. [110] Wen Jinfeng, Liu Yi, Chen Zhenpeng, Chen Junkai, and Ma Yun. 2021. Characterizing commodity serverless computing platforms. J. Softw.: Evol. Process (2021), e2394.Google ScholarGoogle ScholarCross RefCross Ref
  111. [111] Yu Tianyi, Liu Qingyuan, Du Dong, Xia Yubin, Zang Binyu, Lu Ziqian, Yang Pingchao, Qin Chenggang, and Chen Haibo. 2020. Characterizing serverless platforms with serverlessbench. In Proceedings of the ACM Symposium on Cloud Computing (SoCC’20). 3044.Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. [112] Zhang Hong, Tang Yupeng, Khandelwal Anurag, Chen Jingrong, and Stoica Ion. 2021. Caerus: NIMBLE task scheduling for serverless analytics. In Proceedings of the 18th USENIX Symposium on Networked Systems Design and Implementation. 653669.Google ScholarGoogle Scholar
  113. [113] Zhang Michael, Krintz Chandra, and Wolski Rich. 2021. Edge-adaptable serverless acceleration for machine learning Internet of Things applications. Softw.: Pract. Exper. 51, 9 (2021), 18521867.Google ScholarGoogle ScholarCross RefCross Ref
  114. [114] Zhao Lei and Cai Kai-Yuan. 2010. Event handler-based coverage for GUI testing. In Proceedings of the 10th International Conference on Quality Software. 326331.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. FaaSLight: General Application-level Cold-start Latency Optimization for Function-as-a-Service in Serverless Computing

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Software Engineering and Methodology
            ACM Transactions on Software Engineering and Methodology  Volume 32, Issue 5
            September 2023
            905 pages
            ISSN:1049-331X
            EISSN:1557-7392
            DOI:10.1145/3610417
            • Editor:
            • Mauro Pezzè
            Issue’s Table of Contents

            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 the author(s) 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].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 22 July 2023
            • Online AM: 22 February 2023
            • Accepted: 24 January 2023
            • Revised: 3 December 2022
            • Received: 16 May 2022
            Published in tosem Volume 32, Issue 5

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          Full Text

          View this article in Full Text.

          View Full Text