Share record |
![]() ![]() |
Please use this identifier to cite or link to this item:
https://tede2.pucrs.br/tede2/handle/tede/11665
Document type: | Dissertação |
Title: | Fault tolerance for high-level parallel and distributed stream processing in C++ |
Other Titles: | Tolerancia a falhas para processamento stream paralelo e distribuido de alto nivel em C++ |
Author: | Alf, Lucas Machado ![]() |
Advisor: | Griebler, Dalvan Jair |
Abstract (native): | Stream processing is a computing paradigm that addresses the gathering, processing, and analysis of a high-volume heterogeneous continuous data stream, aiming to extract valuable information in real-time. Considering the need for these systems to run for long periods, possibly indefinitely, reprocessing all data in case of failure can be highly costly or even unfeasible. Thus, it is essential for a stream processing system not only to recover after a failure but also to ensure that the generated results are correct. SPar is an annotation-based C++ domain-specific language designed to simplify the development of stream processing applications for multiple parallel architectures. In distributed architectures, SPar generates code using DSParLib, which does not provide fault tolerance mechanisms or strong message delivery guarantees. Other parallel programming alternatives in the literature, such as MPI, are low-level APIs with restrictive support for implementing resilient parallel applications. Most state-of-the-art distributed parallel programming tools for streaming applications with resilience support are available in Java. Given these factors, the main objective of this master’s thesis is to investigate fault tolerance and exactly-once semantics for streaming systems so that it is possible to support it on the SPar software ecosystem without rewriting the user source code. To this end, we created ResiPipe, a C++ library for fault-tolerant distributed stream processing that became a runtime system from the SPar ecosystem to execute parallel code. The results demonstrate that ResiPipe delivers performance comparable to, and in some cases superior o, other analyzed stream processing libraries, in addition to requiring fewer source lines of code (SLOC) per application and presenting a reduced estimated development time, according to Halstead’s method |
Abstract (english): | O processamento de stream é um paradigma computacional voltado para a coleta, o processamento e a análise de fluxos contínuos de dados heterogêneos em grande volume, com o objetivo de extrair informações valiosas em tempo real. Considerando que esses sistemas precisam ser executados por longos períodos, às vezes indefinidamente, realizar o reprocessamento por completo dos dados em caso de falha pode ser extremamente custoso ou até inviável. Sendo assim, é fundamental que um sistema de processamento de stream não apenas se recupere de falhas, mas também garanta a integridade dos resultados. A SPar consiste em uma linguagem de domínio específico para C++ baseada em anotações, projetada para simplificar o desenvolvimento de aplicações de processamento de stream para múltiplas arquiteturas paralelas. Em arquiteturas distribuídas, a SPar gera código utilizando a DSParLib, que não fornece mecanismos de tolerância a falhas nem garantias de entrega de mensagens. Outras alternativas para programação paralela existentes na literatura, como o MPI, são APIs de baixo nível com suporte restrito para a implementação de aplicações paralelas resilientes. Grande parte das ferramentas no atual estado da arte em relação a programação paralela e distribuída para aplicações de stream com suporte à resiliência está disponível em Java. Diante desses fatores, o objetivo principal desta dissertação de mestrado consiste em investigar mecanismos de tolerância a falhas e semântica exactly-once para sistemas de processamento de stream, de forma que possam ser suportados no ecossistema de software SPar sem a necessidade de reescrever o código-fonte do usuário. Para esse fim, criamos a ResiPipe, uma biblioteca em C++ para o processamento de stream distribuído e tolerante a falhas, que se tornou parte do ecossistema SPar para executar código paralelo. Os resultados obtidos demonstram que a ResiPipe apresenta desempenho comparável, em alguns casos superior, a outras bibliotecas de processamento de stream analisadas, além de apresentar um menor número de linhas de código fonte (SLOC) por aplicação e uma estimativa de tempo de desenvolvimento reduzida, conforme o método de Halstead |
Keywords: | Parallel Programming Domain-Specific Language Resilience Message Delivery Guarantees Linear Pipeline Stream Parallelism Programação Paralela Linguagem de Domínio Específico Garantias de Entrega de Mensagem Pipeline Linear Paralelismo de Stream |
CNPQ Knowledge Areas: | CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO |
Language: | eng |
Country: | Brasil |
Publisher: | Pontifícia Universidade Católica do Rio Grande do Sul |
Institution Acronym: | PUCRS |
Department: | Escola Politécnica |
Program: | Programa de Pós-Graduação em Ciência da Computação |
Access type: | Acesso Aberto |
Fulltext access restriction: | Trabalho não apresenta restrição para publicação |
URI: | https://tede2.pucrs.br/tede2/handle/tede/11665 |
Issue Date: | 24-Mar-2025 |
Appears in Collections: | Programa de Pós-Graduação em Ciência da Computação |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
LUCAS_MACHADO_ALF_DIS.pdf | LUCAS_MACHADO_ALF_DIS | 2.5 MB | Adobe PDF | ![]() Download/Open Preview |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.