Dissertação

{en_GB=A Performance Comparison of Modern Garbage Collectors for Big Data Environments} {} EVALUATED

{pt=O uso de Java para desenvolver plataformas de Big Data (Hadoop, Spark) tem sido a escolha preferida entre desenvolvedores devido ao rápido desenvolvimento de sistemas de grande escala, em parte devido ao gerenciamento automático de memória. No entanto, o da reciclagem automática de memória nessas plataformas tem sido cada vez mais uma preocupação, pois estas plataformas cada vez mais exigem tempos de pausa menores, maior rendimento e melhor uso de memória pelo coletor de lixo. Neste projeto, pretendemos compreender como diferentes coletores de lixo escalam em termos de rendimento, latência e uso de memória em ambientes com grande consumo de memória, de modo que, dada uma plataforma com necessidades de desempenho específicas, possamos mapear o algoritmo de coleta de lixo (GC) mais adequado . Trabalhos anteriores sobre este assunto usaram cargas de trabalho que não conseguiram representar cenários de caso de uso realistas de plataformas de Big Data ou foram executados em cima de implementações acadêmicas da JVM, que não se destinam a executar aplicativos de Big Data. Neste trabalho, usamos uma combinação de plataformas de Big Data (Cassandra, Lucene e GraphChi) e benchmarks baseados no mundo real (DaCapo) em cima de uma JVM industrial (OpenJDK HotSpot JVM) que fornece um alto grau de precisão aos resultados. Além disso, desenvolvemos benchmarks de baixa granularidade para estudar em mais detalhes como técnicas específicas (por exemplo, barreiras de sincronização) empregadas por coletores de lixo afetam diferentes métricas de desempenho., en=The use of Java to develop Big Data platforms (e.g., Hadoop, Spark) has been a favoured choice among developers due to its fast development of large-scale systems, in part due to the automatic memory management. However, the impact of garbage collection on these platforms has been more and more of a concern, as platforms increasingly require lower pause times, higher throughput, and better memory usage by the garbage collector. In this project, we aim to understand how different garbage collectors scale in terms of throughput, latency, and memory usage in memory-hungry environments, so that given a platform with particular performance needs we may map the most suitable garbage collection (GC) algorithm. Previous works on this subject have used workloads that either failed to represent realistic use case scenarios of Big Data platforms or were run on top of academic implementations of the JVM, that are not meant to run Big Data applications. In this work, we use a combination of Big Data platforms (e.g., Cassandra, Lucene, and GraphChi) and real-world-based benchmarks (e.g., DaCapo) on top of an industrial JVM (OpenJDK HotSpot JVM) which provides a high degree of accuracy to the results. Additionally, we develop fine-grained benchmarks to study in more detail how particular techniques (e.g., barriers) employed by garbage collectors affect different performance metrics.}
{pt=Reciclagem automática de memória, Big Data, Escalabilidade, Ambientes de Big Data, Plataformas de Big Data, Máquina Virtual Java, en=Garbage collection, Big Data, Scalability, Big Data environments, Big Data platforms, Java Virtual Machine}

Janeiro 14, 2021, 16:30

Orientação

ORIENTADOR

Paulo Jorge Pires Ferreira

Departamento de Engenharia Informática (DEI)

Professor Associado

ORIENTADOR

Rodrigo Fraga Barcelos Paulus Bruno

Oracle Labs Zurich

Senior Researcher