Towards Enhanced State Management for Serverless Computation

Author

Barcelona Pons, Daniel

Director

García López, Pedro

Date of defense

2022-12-14

Pages

198 p.



Department/Institute

Universitat Rovira i Virgili. Departament d'Enginyeria Informàtica i Matemàtiques

Abstract

La computació al núvol és cada vegada més accessible i adequada per moltes aplicacions. En aquesta línia, recentment trobem el concepte serverless. Els serveis serverless amaguen l'existència de servidors als usuaris, de manera que puguin centrar-se en les seves aplicacions. Volent explotar l'elasticitat de la computació serverless, la computació paral·lela distribuïda, com el processament massiu de dades, rep especial atenció en recerca. Tanmateix, els serveis serverless actuals no són adequats per suportar aplicacions paral·leles. A grans trets, els problemes provenen de la manca de gestió d’estat, coordinació i previsibilitat. Això obre diverses línies de recerca; en comentem tres: 1) No està clar fins a quin punt els serveis actuals poden suportar la computació paral·lela, que requereix execució simultània i rendiment consistent. Les plataformes actuals no ho asseguren i els usuaris poden trobar variabilitat extrema entre serveis. 2) La computació serverless actual ofereix exclusivament executors efímers sense estat ni comunicació directa. Les aplicacions construïdes sobre aquests serveis pateixen per gestionar estat global mutable i coordinar-se. 3) Les dades intermèdies generades durant processaments massius de dades es transfereixen forçosament entre els executors i emmagatzematge desagregat. Aquest model genera un moviment de dades molt car. En aquesta tesi presentem tres contribucions per fer front a aquests reptes. Primer, estudiem el disseny arquitectònic de les principals plataformes serverless i les avaluem empíricament per trobar les que millor s'adaptin a aplicacions paral·leles. Segon, explorem nous mètodes per programar aplicacions distribuïdes amb estat sobre serverless. Presentem noves abstraccions i construïm una capa d'objectes compartits que permet funcions serverless compartir i mutar estat global i coordinar-se. Finalment, estudiem una solució per a l'enviament de dades en serverless mitjançant computació efímera amb estat en emmagatzematge. Construïm un sistema d'emmagatzematge que permet delegar tasques vinculades a dades des de executors serverless i reduir significativament el moviment de dades.


La computación en la nube es cada vez más accesible para muchas aplicaciones. En esta línea, recientemente encontramos el concepto serverless. Los servicios serverless ocultan la existencia de servidores a los usuarios. Queriendo explotar la elasticidad de la computación serverless, la computación paralela distribuida, como el procesamiento masivo de datos, recibe especial atención en investigación. Sin embargo, los servicios serverless actuales no están preparados para soportar aplicaciones paralelas. En general, los problemas provienen de la falta de gestión de estado, coordinación y previsibilidad. Este contexto abre varias líneas de investigación; nosotros discutimos tres: 1) No está claro hasta qué punto los servicios serverless pueden soportar la computación paralela, que requiere ejecución simultánea y rendimiento consistente. Las plataformas actuales no lo garantizan, y los usuarios pueden encontrar variabilidad extrema entre servicios. 2) La computación serverless actual ofrece ejecutores efímeros sin estado ni comunicación directa. Las aplicaciones construidas sobre ellos tienen dificultades para gestionar su estado global mutable y coordinarse. 3) Los datos intermedios generados durante el procesamiento de datos se transfieren forzosamente entre los ejecutores y el almacenamiento desagregado. Este modelo genera un movimiento de datos muy costoso. En esta tesis, presentamos tres contribuciones frente a estos retos. Primero, estudiamos el diseño arquitectónico de las principales plataformas serverless y las evaluamos empíricamente para encontrar las que mejor se adaptan a aplicaciones paralelas. Segundo, exploramos nuevos métodos para programar aplicaciones con estado en serverless. Presentamos nuevas abstracciones y construimos una capa de objetos compartidos que permite a funciones serverless compartir y mutar el estado global y coordinarse. Tercero, estudiamos una solución para el envío de datos en serverless a través de la computación con estado efímera en el almacenamiento. Construimos un sistema de almacenamiento que permite delegar tareas vinculadas a datos de los ejecutores serverless y reducir significativamente el movimiento de datos.


Cloud computing is becoming more accessible and fitting for many applications. In this line, and with fervent interest from research and industry, there is the concept of serverless. Serverless services hide the existence of servers from users, so that they can focus on their applications. In the trend to exploit the elasticity of serverless computing, distributed parallel computations such as analytics, machine learning, and data processing have special attention from researchers. However, current serverless services are unfitted out-of-the-box to support parallel applications. Broadly, the issues come from a lack of state management, coordination, and predictability. This context opens several research lines; we discuss three: 1) It is unclear how well can current serverless services support distributed parallel computing, which requires execution simultaneity and performance consistency. Current platforms do not ensure that, and users may find extreme variability between services. 2) Current serverless computing exclusively offers stateless ephemeral workers with no direct communication. Applications built on top of these services struggle to manage their mutable global state and coordinate their execution. 3) Intermediate data generated during data processing workloads is forcibly transferred between workers and disaggregated storage. This data-shipping model generates very expensive data movement. In this thesis, we present tree novel contributions to tackle these challenges. First, we study the architectural design of the main serverless platforms and empirically evaluate them to find the platforms that best fit parallel applications. Second, we explore novel methods to code stateful distributed applications in serverless. We present the cloud thread abstraction and build a shared objects layer that allows serverless workers to share and mutate global state and coordinate their execution. Finally, we study a solution to serverless data-shipping through in-storage ephemeral stateful computation. We build a storage system that allows to offload data-bound tasks from serverless workers and significantly reduce data movement.

Keywords

Computació Serverless; Computació al Núvol; Emmagatzematge al Núvol; Computación Serverless; Computación en la Nube; Almacenamiento en la Nube; Serverless Computing; Cloud Computing; Cloud Storage

Subjects

004 - Computer science; 62 - Engineering

Knowledge Area

Enginyeria i arquitectura

Documents

TESI Daniel Barcelona Pons.pdf

4.136Mb

 

Rights

ADVERTIMENT. L'accés als continguts d'aquesta tesi doctoral i la seva utilització ha de respectar els drets de la persona autora. Pot ser utilitzada per a consulta o estudi personal, així com en activitats o materials d'investigació i docència en els termes establerts a l'art. 32 del Text Refós de la Llei de Propietat Intel·lectual (RDL 1/1996). Per altres utilitzacions es requereix l'autorització prèvia i expressa de la persona autora. En qualsevol cas, en la utilització dels seus continguts caldrà indicar de forma clara el nom i cognoms de la persona autora i el títol de la tesi doctoral. No s'autoritza la seva reproducció o altres formes d'explotació efectuades amb finalitats de lucre ni la seva comunicació pública des d'un lloc aliè al servei TDX. Tampoc s'autoritza la presentació del seu contingut en una finestra o marc aliè a TDX (framing). Aquesta reserva de drets afecta tant als continguts de la tesi com als seus resums i índexs.

This item appears in the following Collection(s)