Ir al contenido

Documat


Towards enhanced state management for serverless computation

  • Autores: Daniel Barcelona Pons
  • Directores de la Tesis: Pedro García López (dir. tes.) Árbol académico
  • Lectura: En la Universitat Rovira i Virgili ( España ) en 2022
  • Idioma: inglés
  • Número de páginas: 198
  • Tribunal Calificador de la Tesis: Maciej Malawski (presid.) Árbol académico, Carlos Molina Clemente (secret.) Árbol académico, Josep Lluís Berral García (voc.) Árbol académico
  • Enlaces
    • Tesis en acceso abierto en: TDX
  • Resumen
    • español

      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.

    • català

      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.

    • English

      Cloud computing is evolving with new technologies and abstractions that make it more accessible and fitting for many applications. In this line, and with fervent interest from research and industry, there is the concept of serverless. In short, a serverless service hides the existence of servers from users, so that they can focus on their applications. In the trend to exploit the impressive elasticity of serverless computing, distributed parallel computations such as analytics, machine learning, and data processing have raised 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. In consequence, several research lines open in this context; we discuss three: 1) It is unclear how well can current serverless services support distributed parallel computing. Parallel applications require execution simultaneity and performance consistency. Current platforms, however, 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 global state, specially to mutate it at fine-granularity. Furthermore, it is impossible to efficiently coordinate execution with precision. 3) Intermediate data generated during data processing workloads is forcibly transferred between workers and disaggregated storage. This data-shipping model generates expensive data movement that also impacts application performance.

      In this thesis, we present tree novel core contributions to tackle the challenges that manifest in the above lines of research. First, we categorize the main serverless computing platforms from a parallel computation point of view. We carefully investigate their architectural design and empirically evaluate them to find the platforms that best fit to these applications. Our results show important differences in the architectures and performance of the different platforms. We provide a detailed discussion on these variations and useful information to the community for a more fitting choice and usage of serverless computing services. Second, we explore novel methods to code stateful distributed applications in serverless. For this, we present the cloud thread abstraction and build a shared objects layer that allows serverless workers to share and mutate common state and easily coordinate their execution. We evaluate our proposal and show superior or comparable performance to Apache Spark for different machine learning applications. We also show better performance against state-of-the-art solutions for sharing mutable state between serverless functions and coodinate them. All in all, with very little development involvement, since our framework requires just a handful of changes to port traditional multi-threaded applications to serverless (less than 6% of the code bases for all our evaluated applications). Finally, we study a solution to the serverless data-shipping problems through in-storage ephemeral stateful computation. We build a storage system with integrated computation that allows to offload data-bound tasks from serverless workers and significantly reduce data transfers in data processing pipelines. For instance, we reduce data transfers in some applications by 99% and reduce total execution time almost by half.


Fundación Dialnet

Mi Documat

Opciones de tesis

Opciones de compartir

Opciones de entorno