Dissertação

{en_GB=Approxate: Stateful Functions for Approximate Stream Processing} {} EVALUATED

{pt=A computação aproximada é um modelo de computação que pode ser utilizado para melhorar o desempenho, ou utilizar menos recursos no processamento de streams e grafos. Isto é feito ao diminuir a precisão dos resultados (i.e. resultados aproximados). Atualmente existem múltiplas plataformas para processar streams, a maioria não suporta nativamente resultados aproximados. Existem aplicações onde uma função (e.g. que está a ser executada como parte de um fluxo de dados) precisa de dados que são o resultado de uma operação que foi efetuada por outra função, e não tem uma forma de receber esses dados diretamente. Em vez disso, a outra função precisa de escrever os dados num componente de armazenamento, e depois têm que ser lidos a partir daí. Isto causa problemas com o desempenho (aumento de latência) e com a eficiência dos recursos (desperdício de recursos para aceder ao armazenamento) por causa do bottleneck no I/O e também aumenta o custo para o utilizador pois a aplicação necessita de realizar mais pedidos para o armazenamento. O Stateful Functions é uma plataforma que aborda este problema ao permitir que as funções troquem messagens. Este documento propõe o desenho e implementação de uma extensão para ser utilizada com o Stateful Functions. Ela permite processar streams mais eficientemente ao alocar os recursos disponíveis de uma maneira inteligente e variável e também utilizar computação aproximada. Para validar os resultados, a extensão foi avaliada com benchmarks de dados reais e sintéticos, executados localmente e na nuvem com aplicações típicas de processamento de streams., en=Approximate computing is a computing model that can be used to increase performance or use fewer resources in stream and graph processing. This is achieved by lowering the results' precision (i.e. approximate results). Currently, there are multiple stream processing platforms, most of them do not support approximate results natively. There are applications where a function (e.g. executing as a part of a dataflow, or data pipeline) needs data that is a result of an operation made by another function, and it does not have a way of receiving the data directly from the other. Instead, the other function needs to write that data into persistent storage like a database, and then the data needs to be read from there. This causes an issue with performance (high latency and/or low throughput) and resource efficiency (wasted resources to write and read the data from disk) due to the I/O bottleneck, and also increases the cost for the user because the application needs to do more requests to the storage. Stateful Functions is a platform that uses Flink, and that addresses this by allowing message exchange between functions. This document proposes the design and implementation of an extension to be used with Stateful Functions. It can support more efficient stream processing by allocating the available resources intelligently and variably and also using approximate results. To validate the results, the performance of the extension was evaluated using benchmarks with real and synthetic data, running locally and in cloud machines with typical stream processing applications.}
{pt=Stateful Functions, Flink, Processamento de streams, Computação aproximada, en=Stateful Functions, Flink, Stream processing, Approximate computation}

novembro 22, 2021, 13:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Luís Manuel Antunes Veiga

Departamento de Engenharia Informática (DEI)

Professor Associado