Dissertação

Garbage Collection Optimization for JVM running Big Data Workloads EVALUATED

A linguagem Java tem sido a escolha preferida para implementar aplicações Big Data. No entanto, programas em Java incorrem muito uso da memória devido a metadados sobre todos os objectos. Este aumento do uso da memória é negligível em pequenas aplicações, mas não é negligível para o processamento de conjuntos de dados enormes. Este comportamento deve-se à alocação de uma enorme quantidade de objectos e à sua dispersão. O trabalho desta tese apresenta uma solução para lidar com a enchente de memória causada por objectos de grade dimensão, na HotSpot JVM. A solução consiste em separar o espaço de alocação (Java heap) para dar espaço suficiente, e em regiões separadas, a objectos de grande dimensão, que são normalmente os causadores dos problemas de enchente na memória. Como a Java heap necessita de um colecionador de lixo (garbage collector) que colecciona objectos sem uso, este trabalho também apresenta uma extensão ao coleccionador, por defeito, da HotSpot JVM, o Parallel Scavenge, para que se possa promover objectos para as novas separações e coleccionar nesta Java heap. Mostra-se que esta solução pode providenciar melhor uso da aplicação (throughput) quando os espaços para objectos de grande dimensão contêm objectos que vivem bastante tempo, e cujos objectos que referencia estão perto e na mesma região de memória, devido ao aumento da localidade que reduz o número de misses da cache e da TLB e o número de page faults da page table.
Reciclagem Automática de Memória, Máquina Virtual Java, Mega-dados, Anti-enchimento do espaço de alocação, Gestão de Memória do Java

Novembro 3, 2015, 16:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Luís Manuel Antunes Veiga

Departamento de Engenharia Informática (DEI)

Professor Auxiliar