Optimizing serverless architectures for data-intensive analytics workloads
Authors:   , Nestorov Anna Maria 
Published: June 2024

(English) Recently, serverless computing has garnered attention from academia and industry due to its on-demand resource provisioning, allowing users to focus solely on their core business logic by breaking down tasks into small stateless functions.
Serverless offers benefits like a 'pay-per-use' cost model, greater flexibility, and transparent elastic resource auto-scaling.
Researchers in academia and industry are increasingly exploring serverless computing's potential in complex, data-intensive analytics. These tasks, resource-heavy and highly parallel, involve significant inter-function communications. However, this shift presents challenges, requiring alignment with the specific needs and constraints of such applications. This research area is currently considered one of the most compelling areas of study.

This thesis shows that it is possible to efficiently execute modern data-intensive analytics workloads, traditionally deployed in managed cloud clusters, within serverless computing environments using direct data inter-function communication and optimized performance-cost efficient resource allocation policies. To demonstrate this thesis, we first build a performance model for serverless workloads, considering data sharing, volume, and communication technologies. The model, with a relative error of 5.52%, evaluates the performance of a representative workload in serverless, analyzing task granularity and concurrency, data locality, resource allocation, and scheduling policies. Our results indicate that the performance of data-intensive analytics workloads in serverless can be up to 4.32x faster depending on how these are deployed. Furthermore, this characterization highlights inefficiencies in centralized object storage and stresses the primary importance of efficient resource use.

We then introduce Floki, a data forwarding system that tackles the centralized object storage bottleneck. It enables direct communication between producer-consumer function pairs using fixed-size communication methods. Floki establishes point-to-point data channels for intra- and inter-node data transmission, allowing transparent data transfer and reducing network data copying. This workflow-oriented approach boosts performance and minimize resource requirements without restricting function placement.Our experimental evaluation, performed on the principal communication patterns in distributed systems, shows that Floki reduces the end-to-end time up to 74.95x, decreasing the most extensive data sharing time from 12.55 to 4.33 minutes, saving almost two-thirds of time. Additionally, Floki achieves up to 50,738x of resource-saving, equivalent to a memory allocation of approximately 1.9MB instead of an object storage allocation of 96GB.

Finally, we investigates how to achieve efficient resource utilization in modern serverless environments and proposes Dexter, a novel resource allocation manager, leveraging serverless computing elasticity. Dexter continuously monitors application execution, dynamically allocating resources at a fine-grained level combining predictive and reactive strategies to ensure performance-cost efficiency (optimizing total runtime cost). Unlike black-box Machine Learning (ML) models, Dexter reaches a sufficiently good solution, prioritizing simplicity, generality, and ease of understanding. The proposed experimental evaluation demonstrates that our solution achieves a significant cost reduction of up to 4.65x, while improving resource efficiency up to 3.50x, when compared with the default serverless Spark resource allocation that dynamically requests exponentially more executors to accommodate pending tasks. Dexter also enables substantial resource savings, demanding up to 5.71x fewer resources. Dexter is a robust solution to new, unseen workloads, achieving up to 2.72x higher performance-cost efficiency thanks to its conservative resource scaling approach.

(Català) Recentment, la informàtica sense servidor ha captat l'atenció de l'acadèmia i la indústria pel seu aprovisionament de recursos a demanda, permetent als usuaris centrar-se exclusivament en la seva lògica de negoci principal descomponint les tasques en petites funcions sense estat.
La informàtica sense servidor ofereix avantatges com un model de cost 'pagament segons l'ús', major flexibilitat i escalat automàtic transparent dels recursos.
Los investigadors estan explorant cada vegada més el potencial de la informàtica sense servidor en anàlisis complexos i intensius en dades. Aquestes tasques, pesades en recursos i altament paralleles, involucren comunicacions significatives entre funcions. No obstant això, aquest canvi presenta reptes, requerint una alineació amb les necessitats i restriccions específiques d'aquestes aplicacions.

Aquesta tesi demostra que és possible executar eficientment càrregues de treball modernes d'anàlisis intensius en dades, tradicionalment desplegades en clústers gestionats a la núvol, dins d'entorns d'informàtica sense servidor utilitzant comunicació directa entre funcions i polítiques d'assignació de recursos optimitzades en rendiment i costos. Per demostrar aquesta tesi, primerament construïm un model de rendiment per a càrregues de treball sense servidor, considerant el compartiment de dades, el volum i les tecnologies de comunicació. El model, amb un error relatiu del 5,52%, avalua el rendiment d'una càrrega de treball representativa en entorns sense servidor, analitzant la granularitat i la concurrencia de tasques, la localització de les dades, l'assignació de recursos i les polítiques de planificació. Els nostres resultats indiquen que el rendiment de les càrregues de treball d'anàlisis intensius en dades pot ser fins a 4,32x més ràpid depenent de com estiguin desplegats.

A continuació, presentem Floki, un sistema de reenviament de dades que aborda el coll d'ampolla de l'emmagatzematge centralitzat. Permet la comunicació directa entre parelles de funcions productor-consumidor utilitzant mètodes de comunicació de mida fixa, permetent la transferència de dades transparent i reduint la còpia de dades de xarxa. Aquest enfocament orientat al flux de treball millora el rendiment i minimitza els requisits de recursos sense restringir la ubicació de les funcions. La avaluació experimental, realitzada en els patrons de comunicació principals en sistemes distribuïts, mostra que Floki redueix el temps de punta a punta fins a 74,95x, disminuint el temps més extens de compartició de dades de 12,55 a 4,33 minuts, estalviant gairebé dos terços del temps. A més a més, Floki aconsegueix fins a 50.738x d'estalvi de recursos, equivalent a una assignació de memòria d'aproximadament 1,9MB en lloc d'una assignació d'emmagatzematge d'objectes de 96GB.

Finalment, investiguem com aconseguir una utilització eficient dels recursos en els entorns moderns sense servidor i proposem Dexter, un nou gestor d'assignació de recursos, aprofitant l'elasticitat de la informàtica sense servidor. Dexter monitoritza de manera contínua l'execució de l'aplicació, assignant dinàmicament recursos a un nivell de granularitat fina combinant estratègies predictives i reactives per garantir l'eficiència en rendiment-costos (optimitzant el cost total de temps d'execució). A diferència dels models de Machine Learning (ML) de caixa negra, Dexter arriba a una solució prou bona, prioritzant la simplicitat, la generalitat i la facilitat d'entendre. L'avaluació experimental demostra que la solució aconsegueix una reducció de costos significativa de fins a 4,65x, mentre millora l'eficiència dels recursos fins a 3,50x, en comparació amb l'assignació de recursos per defecte de Spark sense servidor. Dexter també permet fins a 5,71x de estalvis de recursos. Dexter és una solució robusta per a càrregues de treball noves , aconseguint una eficiència de rendiment-costos fins a 2,72x més alta gràcies al seu enfocament conservador d'escalat de recursos.

(Español) Recientemente, la computación sin servidor ha captado la atención de la academia y la industria debido a su aprovisionamiento de recursos bajo demanda, permitiendo a los usuarios enfocarse únicamente en la lógica central de sus negocios al descomponer tareas en pequeñas funciones sin estado.
La sin servidor ofrece beneficios como un modelo de costo 'pago por uso', mayor flexibilidad y auto-escalado transparente de recursos elásticos.
Los investigadores están explorando cada vez más el potencial de la computación sin servidor en análisis complejos e intensivos en datos. Estas tareas, que requieren muchos recursos y son altamente paralelas, involucran una comunicación significativa entre funciones. Sin embargo, este cambio presenta desafíos, requiriendo alineación con las necesidades y limitaciones específicas de tales aplicaciones.

Esta tesis muestra que es posible ejecutar eficientemente cargas de trabajo modernas de análisis intensivo en datos, tradicionalmente implementadas en clústeres en la nube gestionados, dentro de entornos de computación sin servidor utilizando comunicación directa entre funciones y políticas optimizadas de asignación de recursos eficientes en rendimiento-costo. Para demostrar esta tesis, primero construimos un modelo de rendimiento para cargas de trabajo sin servidor, considerando el intercambio de datos, el volumen y las tecnologías de comunicación. El modelo, con un error relativo del 5.52%, evalúa el rendimiento de una carga de trabajo representativa en sin servidor, analizando la granularidad y concurrencia de tareas, la localidad de los datos, la asignación de recursos y las políticas de programación. Nuestros resultados indican que el rendimiento de las cargas de trabajo de análisis intensivo en datos puede ser hasta 4.32x más rápido dependiendo de cómo se implementen.

Luego presentamos Floki, un sistema de envío de datos que aborda el cuello de botella del almacenamiento centralizado. Habilita la comunicación directa entre pares de funciones productor-consumidor utilizando métodos de comunicación de tamaño fijo, permitiendo una transferencia de datos transparente y reduciendo la copia de datos de red. Este enfoque orientado al flujo de trabajo mejora el rendimiento y minimiza los requisitos de recursos sin restringir la ubicación de funciones. Nuestra evaluación experimental, realizada en los patrones de comunicación principales en sistemas distribuidos, muestra que Floki reduce el tiempo de extremo a extremo hasta 74.95x, disminuyendo el tiempo de intercambio de datos más extenso de 12.55 a 4.33 minutos, ahorrando casi dos tercios del tiempo. Además, Floki logra hasta 50,738x de ahorro de recursos, equivalente a una asignación de memoria de aproximadamente 1.9MB en lugar de una asignación de almacenamiento de objetos de 96GB.

Finalmente, investigamos cómo lograr una utilización eficiente de recursos en entornos modernos sin servidor y proponemos Dexter, un nuevo gestor de asignación de recursos, aprovechando la elasticidad de la computación sin servidor. Dexter monitorea continuamente la ejecución de la aplicación, asignando recursos de manera dinámica a un nivel fino combinando estrategias predictivas y reactivas para garantizar la eficiencia en rendimiento-costo (optimizando el costo total de tiempo de ejecución). A diferencia de los modelos de Machine Learning (ML) de caja negra, Dexter alcanza una solución lo suficientemente buena, priorizando la simplicidad, generalidad y facilidad de comprensión. La evaluación experimental demuestra que nuestra solución logra una reducción significativa de costos de hasta 4.65x, al tiempo que mejora la eficiencia de recursos hasta 3.50x, en comparación con la asignación de recursos predeterminada de Spark sin servidor. Dexter también permite hasta 5.71x de ahorros de recursos. Dexter es una solución robusta para cargas de trabajo nuevas, logrando hasta 2.72x más eficiencia en rendimiento-costo gracias a su enfoque conservador de escalado de recursos.