Summary: | === The scientific and technological advances observed in last decades have as a result the generation of increasing data collections. In some scenarios, these collections are represented as streams, which can be defined as sequences of data in time ordering. Examples include network traffic statistics, sensor measurements used for environments monitoring, data collected by satellites, and in accelerated growth, data available on online social networks and services on the Web. Once data analysis is a fundamental step to understanding and solving various problems, appropriate and efficient tools for processing such collections are necessary. In this context, the use of distributed systems has become popular, providing a robust and efficient solution to build stream processing applications. These applications often run for long time in shared or dynamic environments, being subject to a series of changes that may occur over time, such as faults, increase/decrease of computational resources and variation in workload. The dynamic nature of these applications requires the existence of mechanisms that allow adaptations at runtime, in order to accommodate the changes in the environment. This work proposes a mechanism to support dynamic reconfiguration for distributed data stream processing applications. The mechanism is implemented as a functionality of Watershed, which is a distributed processing system for applications built in the filter-stream programming model. The results of the experimental evaluation show that the mechanism efficiently and consistently supports the proposed reconfiguration operations. === Os avanços científicos e tecnológicos observados nas últimas décadas têm como um de seus resultados a geração de coleções de dados cada vez maiores. Em alguns cenários, essas coleções são representadas na forma de fluxos, que podem ser definidos como sequências de dados com ordenação temporal. Exemplos incluem estatísticas de tráfego de rede, medições de monitoração de ambientes por sensores, dados coletados por satélites e, em ascendência acelerada, dados disponibilizados em redes sociais online e serviços da Web. Uma vez que a análise de dados figura como etapa fundamental para a compreensão e solução de diversos problemas, ferramentas apropriadas e eficientes para o processamento de tais coleções fazem-se necessárias. Nesse contexto, a utilização de sistemas distribuídos tem se popularizado, constituindo uma solução robusta e eficiente para a construção de aplicações de processamento de fluxos de dados. Essas aplicações geralmente executam por longos períodos em ambientes compartilhados ou dinâmicos, estando sujeitas a uma série de mudanças que podem ocorrer ao longo do tempo, tais como falhas, aumento/diminuição de recursos computacionais e variação na carga de trabalho. A natureza dinâmica dessas aplicações demanda a existência de mecanismos que permitam adaptações em tempo de execução, como forma de acomodar as mudanças ocorridas no ambiente. Neste trabalho, é proposto um mecanismo de suporte a reconfigurações dinâmicas para aplicações de processamento distribuído de fluxos de dados. O mecanismo foi implementado como uma funcionalidade de Watershed, que é um sistema de processamento distribuído para aplicações construídas no modelo de programação filtro-fluxo. Os resultados obtidos na avaliação experimental mostram que o mecanismo dá suporte, de forma eficiente e consistente, às operações de reconfiguração propostas.
|