dc.creator | Donato, Mauricio Matter | |
dc.date.accessioned | 2021-11-03T17:42:24Z | |
dc.date.available | 2021-11-03T17:42:24Z | |
dc.date.issued | 2020-05-25 | |
dc.identifier.uri | http://repositorio.ufsm.br/handle/1/22687 | |
dc.description.abstract | The Apache Spark is a framework able to process a massive quantity of data in-memory,
through its primary abstraction: Resilient Distributed Datasets (RDD). An RDD consists of
an immutable object collection, which can be processed in a parallel and distributed way in
the cluster. Once it was processed, an RDD could be stored in the cache, allowing its reuse
without recomputing it. While the application’s computations are done, the memory tends to
be overheaded, and RDD’s partitions must be removed according to the Least Recently Used
(LRU) algorithm. This algorithm is based on the idea that partitions frequently used in the past
will be reaccessed shortly. Thus, the algorithm removes partitions that access occurred a long
time ago. However, there are situations that the LRU algorithm could introduce degradation
in Spark’s performance, which is the case where there is cyclic access in the memory, and the
available space is lower than the dataset size. In those situations, the LRU algorithm will always
remove the block, which will be accessed soon. Considering the identified issues in the
LRU, this work proposes a Dynamic Memory Management in Applications With Data Reuse
on Apache Spark. This model aims to extract metrics from the application’s execution in order
to use that information to realize data removing from the cache. The proposed model is
compound by two main components, which are (1) an algorithm to manage the RDD’s partitions
stored int the memory and (2) a monitor agency responsible for getting information about
the application. The Dynamic Management model was validated through experiments using
the Grid’5000 platforms with benchmarks PageRank, K-Means, and Logistic Regression. The
obtained results demonstrate that the Dynamic Management model was able to improve the
utilization of available memory, being able to reduce by 23,94% the necessary execution time
to process the benchmark Logistic Regression, when it is compared to LRU. Furthermore, the
proposed model became Spark’s execution more stable, reducing the error frequency during the
processing of benchmarks. As a consequence, there was a reduction by 34,14% in the time
spend to process the benchmark PageRank. Therefore, the obtained results allow concluding
that dynamic strategies, like the one proposed by this work, can improve the Sparks execution
in applications where there is reuse data. | eng |
dc.language | por | por |
dc.publisher | Universidade Federal de Santa Maria | por |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 International | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.subject | Spark | por |
dc.subject | Gerenciamento | por |
dc.subject | Memória | por |
dc.subject | Reuso | por |
dc.subject | Dinâmico | por |
dc.subject | Management | eng |
dc.subject | Memory | eng |
dc.subject | Reuse | eng |
dc.subject | Dynamic | eng |
dc.title | Gerenciamento dinâmico de memória em aplicações com reuso de dados no Apache Spark | por |
dc.title.alternative | Dynamic memory management in applications with data reuse on Apache Spark | eng |
dc.type | Dissertação | por |
dc.description.resumo | O Apache Spark é um framework capaz de processar grandes quantidades de dados em memória,
através da sua principal abstração: o Resilient Distributed Datasets (RDD). Um RDD
consiste em uma coleção imutável de objetos, os quais podem ser operados de maneira paralela
e distribuída nocluster. Uma vez processados, RDDs podem ser mantidos em cache,
possibilitando a sua reutilização sem realizar a sua recomputação. Conforme a computação da
aplicação é feita, a memória tende a ficar sobrecarregada e, portanto, partições de RDDs devem
ser removidas de acordo com o algoritmo Least Recently Used (LRU). Este algoritmo é baseado
na observação de que partições frequentemente utilizadas em um passado recente tendem a
ser acessadas novamente em um futuro próximo. Deste modo, remove-se a partição cujo acesso
ocorreu há mais tempo. Entretanto, há situações em que o LRU pode acarretar em uma degradação
no desempenho, como é o caso onde há acessos cíclicos à memória e a quantidade de dados
manipulados é maior que o espaço disponível. Nessas situações,o LRU sempre irá remover um
bloco que será acessado em um futuro próximo. Considerando tal problemática, este trabalho
propõe um modelo de Gerenciamento Dinâmico da Memória em Aplicações com Reuso de
Dados no Apache Spark. Este modelo busca extrair métricas da aplicação em execução a fim
de utilizar estas informações para realizar remoção dos dados em cache. O modelo proposto é
composto por dois componentes principais, sendo estes (1) um algoritmo de gerenciamento das
partições de RDDs armazenadas em memória e (2) um agente de monitoramento responsável
por obter informações sobre a execução de aplicações. O modelo de Gerenciamento Dinâmico
foi validado através da realização de experimentos utilizando a plataforma Grid’5000 com os
benchmarks PageRank, K-Means e Logistic Regression. Os resultados obtidos demonstram que
o modelo de Gerênciamento Dinâmico conseguiu realizar um melhor aproveitamento da memória
disponível, chegando a reduzir em 23,94% o tempo médio necessário para processar o
benchmark Logistic Regression, quanto comparado ao LRU. Ademais, o modelo proposto tornou
a execução do Spark mais estável, reduzindo a frequência de erros no processamento dos
benchmarks. Como consequência, houve uma redução de até 34,15% no tempo de execução do
benchmark PageRank. Portanto, estes resultados permitem concluir que estratégias dinâmicas,
como a proposta por este estudo, podem proporcionar um ganho no desempenho do Spark no
processamento de aplicações onde existe o reuso de dados. | por |
dc.contributor.advisor1 | Barcelos, Patrícia Pitthan de Araújo | |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/6069105173950277 | por |
dc.contributor.referee1 | Lima, João Vicente Ferreira | |
dc.contributor.referee2 | Wives, Leandro Krug | |
dc.creator.Lattes | http://lattes.cnpq.br/2203534256446729 | por |
dc.publisher.country | Brasil | por |
dc.publisher.department | Ciência da Computação | por |
dc.publisher.initials | UFSM | por |
dc.publisher.program | Programa de Pós-Graduação em Ciência da Computação | por |
dc.subject.cnpq | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | por |
dc.publisher.unidade | Centro de Tecnologia | por |