A Fine-Grained and Locality-Aware Decentralized Framework for Cache Management in Serverless Computing
Subject Areas : مهندسی برق و کامپیوتر
Mohammad Kahani
1
,
S. Abrishami
2
*
,
A. Nadjaran Toosi
3
1 - Dept. of Comp. Eng., Faculty of Engineering, Ferdowsi University of Mashhad, Mashhad, Iran
2 - Dept. of Comp. Eng., Faculty of Engineering, Ferdowsi University of Mashhad, Mashhad, Iran
3 - School of Comp. and Info. Systems, The University of Melbourne, Melbourne, Australia
Keywords: Serverless computing, function as a service, stateful functions, function-level cache, origin functions,
Abstract :
Nowadays, the use of serverless computing and Function-as-a-Service (FaaS) applications has been rapidly increasing. This paradigm enables users to deploy their applications without the need to configure infrastructure hosts, while benefiting from advantages such as pay-per-use pricing, flexibility, and automatic scalability of serverless platforms. However, due to the stateless nature of serverless functions, system performance is often limited in scenarios where functions need to interact with each other or when accessing large volumes of data. In common approaches, remote data stores such as Amazon S3 are employed to address this limitation, which introduce significant latency overhead. One solution to mitigate this overhead is the use of caching. Although several studies have explored caching in serverless environments, they generally manage caches either at the host level or at the application level, which does not yield optimal performance. In this paper, we propose a novel framework on an open-source serverless platform that introduces a fine-grained, locality-aware caching system at the function level. This approach not only reduces function response time but also enables more efficient utilization of available resources.
[1] G. P. Mattia and R. Beraldi, "P2PFaaS: A framework for FaaS peer-to-peer scheduling and load balancing in fog and edge computing," SoftwareX, vol. 21, Article ID: 101290, Feb. 2023.
[2] J. Wen, Z. Chen, X. Jin, and X. Liu, "Rise of the planet of serverless computing: A systematic review, "ACM Trans. Software Engineeing. Methodology, vol. 32, no. 5, Article ID: 13, 2023.
[3] H. Shafiei, A. Khonsari, and P. Mousavi, "Serverless computing: A survey of opportunities, challenges, and applications, "ACM Computing Survey, vol. 54, no. 11S, Article ID: 239, Jan. 2022.
[4] Amazon, Amazon S3, [Online] Available: https://aws.amazon.com/s3/ [Accessed Jan. 2024]
[5] –, Cloudstate: Distributed State Management for Serverless, [Online]. Available: https://github.com/cloudstateio/cloudstate [Accessed Jan. 2024].
[6] –, Stateful Functions: A Platform-Independent Stateful Serverless Stack, [Online]. Available: https://nightlies.apache.org/flink/flink-statefun-docs-master/ [Accessed Ja. 2024].
[7] H. Zhang, A. Cardoza, P. B. Chen, S. Angel, and V. Liu, "Fault-tolerant and transactional stateful serverless workflows," in Proc. 4th USENIX Symp. on Operating Systems Design and Implementation, pp. 1187-1204, 4-6 Nov. Aug. 2020.
[8] V. Sreekanti, et al., "Cloudburst: stateful functions-as-a-service," Proc. of the VLDB Endowment, vol. 13, no. 11, pp. 2438-2452, 2020.
[9] Z. Jia and E. Witchel, "Boki: Stateful serverless computing with shared logs," in Proc. of the ACM SIGOPS 28th Symp. on Operating Systems Principles, pp. 691-707, Virtual Event Germany, 26-29 Oct. 2021.
[10] D. Barcelona-Pons, P. Sutra, M. Sanchez-Artigas, G. Paris, and P. Garcia-Lopez, "Stateful serverless computing with crucial," ACM Trans. on Software Engineering and Methodology, vol. 31, no. 3, Article ID: 39, 38 pp., Jul. 2022.
[11] F. Romero, et al., "Faa$T: A transparent auto-scaling cache for serverless applications," in Proc. of the ACM Symp. on Cloud Computing, pp. 122-137, Seattle, WA, USA, 1-4 Nov. 2021.
[12] Ao Wang, et al., "InfiniCache: exploiting ephemeral serverless functions to build a cost-effective memory cache," in Proc. of the 18th USENIX Conf, on File and Storage Technologies, pp. 267-282, Santa Clar, CA, USA, 24-27 Feb. 2020.
[13] J. Zhang, et al., "InfiniStore: Elastic serverless cloud storage," Proc. of the VLDB Endowment, vol. 16, no. 7, p. 1629-1642, Mar. 2023.
[14] –, Kubernetes, [Online]. Available: https://kubernetes.io/ [Accessed Jan. 2024].
[15] A. Klimovic, et al., "Pocket: Elastic ephemeral storage for serverless analytics," in Proc. of the 13th USENIX Symp. on Operating Systems Design and Implementation, pp. 428-444, Carlsbad, CA, USA, 8-10 Oct. 2018.
[16] C. Wu, V. Sreekanti, and J. M. Hellerstein, "Transactional causal consistency for serverless computing," in Proc. of the 2020 ACM SIGMOD Int. Conf. on Management of Data, pp. 83-97, Portland, OR, USA, 14-19 Jun. 2020.
[17] D.Mvondo, et al., "OFC: an opportunistic caching system for FaaS platforms," in Proc. of the 16th European Conf. on Computer Systems, pp. 228-244, Virtual Event UKy, 26-28 Apr. 2021.
[18] –, OpenFaaS, [Online]. Available: https://docs.openfaas.com/architecture/gateway/ [Accessed Jan. 2024]
[19] –, OpenEBS, [Online]. Available: https://openebs.io/docs/ [Accessed January 2024]
[20] –, Sidecar Containers, 2023. [Online]. Available: https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/. [Accessed 5 Sept. 2023]
[21] A. Fuerst and P. Sharma, "Locality-aware load-balancing for serverless clusters," in Proc. of the 31st Int. Symp. on High-Performance Parallel and Distributed Computing, pp. 227-239, Minneapolis, MN, USA, 27 Jun.-1 Jul. 2022.
[22] Y. Lee and S. Choi, "A greedy load balancing algorithm for FaaS platforms," in Proc. of the 2021 5th Int. Conf. on Cloud and Big Data Computing, pp. 63-69, Liverpool, UK, 13-15 Aug. 2021.
[23] –, IPVS Scheduling Algorithm, [Online]. Available: https://keepalived-pqa.readthedocs.io/en/latest/scheduling_algorithms.html [Accessed Jan. 2024].
[24] J. Kim and K. Lee, "FunctionBench: A suite of workloads for serverless cloud function service," in Proc. 2019 IEEE 12th Int. Conf. on Cloud Computing, pp. 502-504, Milan, Italy, 8-13 Jul. 2019.
[25] S. Elnikety, Azure Public Dataset, [Online]. Available: https://github.com/Azure/AzurePublicDataset/blob/master/AzureFunctionsInvocationTrace2021.md [Accessed Jan. 2024].