Performance modeling, task scheduling and elastic scaling for distributed graph processing systems

Detalhes bibliográficos
Autor(a) principal: Presser, Daniel
Data de Publicação: 2021
Tipo de documento: Tese
Idioma: eng
Título da fonte: Repositório Institucional da UFSC
Texto Completo: https://repositorio.ufsc.br/handle/123456789/229304
Resumo: Tese (doutorado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2021.
id UFSC_69c525a8146fe9b25e07ae4d38c3af75
oai_identifier_str oai:repositorio.ufsc.br:123456789/229304
network_acronym_str UFSC
network_name_str Repositório Institucional da UFSC
repository_id_str 2373
spelling Universidade Federal de Santa CatarinaPresser, DanielSiqueira, Frank2021-10-14T19:31:57Z2021-10-14T19:31:57Z2021372899https://repositorio.ufsc.br/handle/123456789/229304Tese (doutorado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2021.O crescimento das bases de dados observado nos últimos anos, que deu origem ao termo BigData, trouxe inúmeros desafios e despertou o interesse dos pesquisadores por formas inovadoras de extrair informações de grandes bases de dados de maneira paralela e distribuída. Diversas ferramentas foram idealizadas e se mostraram bem sucedidas para essa tarefa, como o MapReduce da Google (e sua versão open source, o Hadoop). No entanto, logo ficou claro que estas ferramentas de propósito geral não eram adequadas para lidar com grandes bases de dados modeladas como grafos. Para lidar com grafos muito grandes, ferramentas e abstrações de programação específicas foram propostas, dentre as quais se destaca o Pregel, da Google. Pregel propõe uma abstração baseada no Bulk Synchronous Parallel (BSP), cuja popularidade resultou em diversas implementações de código aberto e ampla utilização na indústria e academia. Isso inclui tanto ferramentas para processamento em lote, como o originalmente proposto pelo Pregel, quanto ferramentas para processamento de fluxo contínuo de dados, chamadas stream processing baseadas em grafos. Estas ferramentas foram propostas para serem executadas em nuvens computacionais, onde os recursos precisam ser alocados de maneira eficiente. Este trabalho investiga modelos de desempenho que possam ser usados para estimar o tempo de execução de tarefas de processamento de grafos em diferentes configurações de ambientes de execução (em termos de número e tamanho das máquinas alocadas), de maneira a permitir a otimização e racionalização da escolha destas configurações. São considerados tanto os cenários de processamento em lote, em grafos estáticos previamente coletados, quanto cenários de stream processing, em que o grafo evolui continuamente durante a execução. Além disso, são consideradas diversos mecanismos de particionamento do grafo entre os computadores que compõem o ambiente de execução: desde o particionamento aleatório simples (conhecido como Hash) até modelos sofisticados que otimizam a distribuição do grafo de maneira a reduzir o overhead de comunicação, através de uma técnica baseada em micro-partições. Para tarefas de processamento em lote, é apresentado um modelo de desempenho baseado no GPS, uma implementação de código aberto do Pregel, cujas previsões tem uma precisão média próxima de 90% (comparada a 50% de ferramentas de aprendizado de máquina comumente usadas nessa tarefa). O modelo também é o primeiro da literatura capaz de lidar com particionadores sofisticados (usando a técnica de micro-partições), aplicando o particionamento de vértices do grafo. Para tarefas de stream processing, é apresentado um modelo de desempenho para o Spark GraphX. Esta ferramenta, também baseada no Pregel, realiza o particionamento de arestas, que foi estendido com um particionador que suporta a técnica de micro-partições. O modelo de desempenho é utilizado para guiar o escalonamento de tarefas, de modo que o sistema ajuste a configuração do ambiente de execução de acordo com a evolução do grafo que está sendo analisado. Com isso, torna-se possível realizar escalonamento horizontal e vertical, sem a necessidade de um reparticionamento completo do grafo, que seria necessário com particionadores sofisticados. O modelo de desempenho e o particionador foram aplicados a um grafo dinâmico extraído do Twitter com o objetivo de cumprir deadlines na atualização do grafo, tendo sido verificada uma precisão média próxima de 90% para as previsões realizadas pelo modelo de desempenho, bem como uma redução de até 30% no custo de alocação de máquinas em experimentos realizados no Amazon EC2.Abstract: The accelerated growth of databases observed in recent years, that started the BigData era, presented numerous challenges related to extracting useful information from massive datasets in a parallel and distributed fashion. Several tools and frameworks were proposed to tackle these challenges, with many widely successful examples, such as MapReduce from Google (and its open-source version Hadoop), Apache Spark, and others. However, it soon became clear that, although successful in many domains, general-purpose frameworks were not efficient to handle large datasets modeled as graphs. Efficiently extracting valuable data from massive graphs required domain-specific tools and programming abstractions. Over the years, many frameworks were proposed, among which Google's Pregel stands out. Pregel proposes an abstraction based on the Bulk Synchronous Parallel (BSP) programming model that simplifies the creation of graph algorithms and became widely popular both among researchers and the industry. Pregel's popularity resulted in many open-source implementations, including for batch applications (as Pregel was originally designed) and also for dynamic graph stream processing applications. Frameworks such as Pregel are designed to be executed in cloud computing environments, where the resources must be efficiently managed given the pay-as-you-go nature of such services. This thesis investigates performance models that can be used to estimate the execution time of graph processing tasks in different execution environments (considering the number and types of virtual machines allocated), to optimize and rationalize the choice of such configurations. We investigate the static graph processing scenario and also stream processing applications of dynamic graphs, in which the graph continuously evolves during the execution of the system. We also consider different mechanisms for partitioning a graph among distributed processing nodes, from the simple Hash partitioner (in which the graph components are randomly assigned to processing nodes) to sophisticated algorithms that aim to reduce communication overheads, employing a micro-partitioning technique. When considering batch processing of static graphs, this thesis presents a performance model based on GPS, an open-source implementation of the Pregel model, and a task scheduler that uses the performance model to schedule graph processing jobs in a cloud computing environment. Our model has an average precision of 90 (much higher than the 50 achieved by machine learning tools commonly used to perform such predictions). Our model is also the first in the literature capable of using sophisticated partitioners, by applying a micro-partitioning technique to partition the graph vertices, whereas the existing literature of performance modeling for static graphs is limited to the simple hash partitioner. For streaming applications of dynamic graphs, we present an elastic scaler for Spark GraphX, also using Pregel's abstractions. Our proposal includes a performance model for dynamic graphs and a novel edge-based graph partitioner, that employs the micro-partitioning technique and is capable of quickly re-partitioning a graph during reconfigurations. The performance model is used to guide the elastic scaling of the streaming graph execution environment, both vertically and horizontally, as the graph evolves over time aiming to satisfy user-defined timing restrictions and to optimize the cost of running the application on a cloud computing environment. The performance model and partitioner were tested in a dynamic graph extracted from Twitter and have shown an average precision of 90 for performance model predictions, and reductions of up to 30 in the cost of running the application on Amazon EC2 when compared to state-of-the-art alternatives.104 p.| il.engComputaçãoGrafos de ligaçãoPerformance modeling, task scheduling and elastic scaling for distributed graph processing systemsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSCinfo:eu-repo/semantics/openAccessORIGINALPGCC1200-T.pdfPGCC1200-T.pdfapplication/pdf13168166https://repositorio.ufsc.br/bitstream/123456789/229304/-1/PGCC1200-T.pdf3c8ee2bcc8d4f23d81e554df236a3213MD5-1123456789/2293042021-10-14 16:31:57.36oai:repositorio.ufsc.br:123456789/229304Repositório de PublicaçõesPUBhttp://150.162.242.35/oai/requestopendoar:23732021-10-14T19:31:57Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false
dc.title.none.fl_str_mv Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
title Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
spellingShingle Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
Presser, Daniel
Computação
Grafos de ligação
title_short Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
title_full Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
title_fullStr Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
title_full_unstemmed Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
title_sort Performance modeling, task scheduling and elastic scaling for distributed graph processing systems
author Presser, Daniel
author_facet Presser, Daniel
author_role author
dc.contributor.none.fl_str_mv Universidade Federal de Santa Catarina
dc.contributor.author.fl_str_mv Presser, Daniel
dc.contributor.advisor1.fl_str_mv Siqueira, Frank
contributor_str_mv Siqueira, Frank
dc.subject.classification.none.fl_str_mv Computação
Grafos de ligação
topic Computação
Grafos de ligação
description Tese (doutorado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2021.
publishDate 2021
dc.date.accessioned.fl_str_mv 2021-10-14T19:31:57Z
dc.date.available.fl_str_mv 2021-10-14T19:31:57Z
dc.date.issued.fl_str_mv 2021
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ufsc.br/handle/123456789/229304
dc.identifier.other.none.fl_str_mv 372899
identifier_str_mv 372899
url https://repositorio.ufsc.br/handle/123456789/229304
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 104 p.| il.
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSC
instname:Universidade Federal de Santa Catarina (UFSC)
instacron:UFSC
instname_str Universidade Federal de Santa Catarina (UFSC)
instacron_str UFSC
institution UFSC
reponame_str Repositório Institucional da UFSC
collection Repositório Institucional da UFSC
bitstream.url.fl_str_mv https://repositorio.ufsc.br/bitstream/123456789/229304/-1/PGCC1200-T.pdf
bitstream.checksum.fl_str_mv 3c8ee2bcc8d4f23d81e554df236a3213
bitstream.checksumAlgorithm.fl_str_mv MD5
repository.name.fl_str_mv Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)
repository.mail.fl_str_mv
_version_ 1766805097747054592