Leveraging Far Memory for Data-Intensive Processing: A Hotness-Segregated Heap Approach
The progress in high-performance interconnects has facilitated the feasibility of far-memory to support data-intensive workloads. However, such programs are usually developed in managed languages, which rely on the garbage collector to alleviate manual memory management efforts. The long-standing principle of the garbage collector design is object lifetime. Although it works well in a monolithic machine with the entire heap locally and cheaply accessible, it faces challenges in a far-memory setting where the heap spans multiple machines. The garbage collector, by lacking knowledge of the program semantics, can relocate frequently needed (hot) objects to far-memory, leading to excessive remote access. Our insight is that object hotness is also an important aspect in designing a garbage collector for a far-memory runtime. This extended abstract presents the ongoing work of Polar, an enhanced runtime that is hotness-aware and suitable for network-connected memory systems. In Polar, the garbage collector is designed to not only compact the local memory but also appropriately move objects to near and far memory pools based on data hotness.