CAB E 72
Rodrigo Bruno (INESC-ID Lisboa): "Taming Long Tail Latencies with Allocation Context aware Pretenuring"
Abstract:
Latency sensitive services such as credit-card fraud detection and website targeted advertisement rely on Big Data platforms which run on top of memory managed runtimes, such as the Java Virtual Machine. These platforms, however, suffer from unpredictable and unacceptably high pause times due to inadequate memory management decisions This problem has been previously identified, and results show that current memory management techniques are ill-suited for applications that hold in memory massive amounts of long-lived objects (which is the case for a wide spectrum of Big Data applications). Previous works reduce such application pauses by allocating objects in off-heap, in special allocation regions/generations, or by using ultra-low latency Garbage Collectors (GC). However, all these solutions either require a combination of programmer effort and knowledge, source code access or off-line profiling, or impose a significant impact on application throughput in order to reduce application pauses (which is the case of ultra-low collectors). To solve this problem, we propose ROLP, a runtime object lifetime profiler that profiles application code at runtime. ROLP is targeted to help pretenuring GC algorithms deciding where to allocate an object in order to reduce overall fragmentation and GC effort, thus reducing application pauses. ROLP is implemented for the OpenJDK 8 and was evaluated with a recently proposed pretenuring collector (NG2C). Results show long tail latencies reductions of up to 51% for Lucene (search engine), 85% for GraphChi (graph engine), and 69% for Cassandra (key-value store). This is achieved with negligible throughput (< 6%) and memory overhead, and with zero programmer effort and no source code access.
Short Bio:
Rodrigo Bruno received his BSc (2012) and MSc (2014) degrees in Information Systems and Computer Engineering from Instituto Superior Técnico (IST), University of Lisbon, where he is now pursuing a PhD degree. At the same time, Rodrigo is a researcher at the Distributed Systems Group in INESC-ID Lisboa, and a teaching assistant at IST. His research is mostly focused on Garbage Collection algorithms for large scale latency sensitive applications. In the course of the last years, Rodrigo has collaborated and interned with several companies (such as Microsoft Research and Google) and also contributed to several opensource projects. ;