Watershed-ng: um sistema distribuído e extensível para o processamento de fluxos de dados

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Primeiro orientador

Membros da banca

Renato Antonio Celso Ferreira
Wagner Meira Junior

Resumo

Plataformas de processamento de dados massivos permitem que usuários expressem as computações utilizando abstrações que simplificam à extração de paralelismo. A maioria das plataformas, no entanto, não permitem que os usuários especifiquem como a comunicação entre os nós de computação deve acontecer. Neste trabalho descrevemos a plataforma Watershed-ng, uma re-engenharia do Watershed, uma plataforma baseada no modelo filtro-fluxo e originalmente focada no processamento de fluxos contínuos de dados. Isolando a funcionalidade dos canais de fluxos de dados em classes de primeira ordem, se tornou possível desenvolver, combinar e reutilizar diversos padrões de comunicação e componentes para o tratamento do fluxo de dados. Aplicações desenvolvidas com o Watershed-ng, integrado ao ambiente Hadoop, apresentaram melhorias significativas de desempenho, bem como uma redução em tamanho de código de até 50%, quando comparado com as plataformas predecessoras.

Abstract

Most high-performance data processing (a.k.a. big-data) systems allowusers to express their computation using abstractions (like MapReduce)that simplify the extraction of parallelism from applications. Mostframeworks, however, do not allow users to specify how communicationmust take place: that element is deeply embedded into the run-timesystem (RTS) abstractions, making changes hard to implement.In this work we describe Wathershed-ng, our re-engineering of the Watershed system, a framework based on the filter-stream paradigm and originally focused on continuous stream processing. Like other big-data environments, Watershed provided object-oriented abstractions to express computation (filters), but the implementation of streams was an RTS element. By isolating stream functionality into appropriate classes, combination of communication patterns and reuse of common message handling functions (like compression and blocking) become possible. The new architecture even allows the design of new communication patterns, for example, allowing users to choose MPI, TCP or shared memory implementations of communication channels as their problem demands. Applications designed for the new interface showed reductions in code size on the order of 50% and above in some cases. The performance results also showed significant improvements, since some implementation bottlenecks were removed in the re-engineering process.

Assunto

Computação, Big data, Programação paralela (Computação), Sistemas distribuídos

Palavras-chave

Processamento de fluxos de dados, Big data, Sistemas distribuídos, Programação paralela

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por