Affiliation:
1. INESC-ID, Portugal / University of Lisbon, Portugal
2. Feedzai, Portugal
Abstract
Big Data applications suffer from unpredictable and unacceptably high pause times due to Garbage Collection (GC). This is the case in latency-sensitive applications such as on-line credit-card fraud detection, graph-based computing for analysis on social networks, etc. Such pauses compromise latency requirements of the whole application stack and result from applications' aggressive buffering/caching of data, exposing an ill-suited GC design, which assumes that most objects will die young and does not consider that applications hold large amounts of middle-lived data in memory.
To avoid such pauses, we propose NG2C, a new GC algorithm that combines pretenuring with user-defined dynamic generations. By being able to allocate objects into different generations, NG2C is able to group objects with similar lifetime profiles in the same generation. By allocating objects with similar lifetime profiles close to each other, i.e. in the same generation, we avoid object promotion (copying between generations) and heap fragmentation (which leads to heap compactions) both responsible for most of the duration of HotSpot GC pause times.
NG2C is implemented for the OpenJDK 8 HotSpot Java Virtual Machine, as an extension of the Garbage First GC. We evaluate NG2C using Cassandra, Lucene, and GraphChi with three different GCs: Garbage First (G1), Concurrent Mark Sweep (CMS), and NG2C. Results show that NG2C decreases the worst observable GC pause time by up to 94.8% for Cassandra, 85.0% for Lucene and 96.45% for GraphChi, when compared to current collectors (G1 and CMS). In addition, NG2c has no negative impact on application throughput or memory usage.
Funder
Fundação para a Ciência e a Tecnologia
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Evaluating Finalization-Based Object Lifetime Profiling;Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management;2024-06-20
2. Multiverse Notebook: Shifting Data Scientists to Time Travelers;Proceedings of the ACM on Programming Languages;2024-04-29
3. Characterization and Reclamation of Frozen Garbage in Managed FaaS Workloads;Proceedings of the Nineteenth European Conference on Computer Systems;2024-04-22
4. Optimization-Aware Compiler-Level Event Profiling;ACM Transactions on Programming Languages and Systems;2023-06-26
5. BestGC: An Automatic GC Selector;IEEE Access;2023