Memory management is particularly challenging when multiple processes share a common heap. The challenges increase when the heap is in non-volatile memory. To address these challenges, we present the first ever multi-process, fault-tolerant, on-the-fly garbage collector for unmanaged languages.
Our garbage collector, MPGC (https://github.com/HewlettPackard/mpgc), manages a shared-memory heap shared among any number of concurrent C++ processes. The on-the-fly aspects are an extension to the Doligez-Leroy-Gonthier on-the-fly garbage collector. It is fault-tolerant with respect to process and processor failures, it is subject to cache flushing guarantees, it does not require processes to know the types of objects allocated by other processes, and it is designed to manage heaps stored in byte-addressable non-volatile memory.
Lokesh Gidra is a senior research engineer in the Systems Software group at Hewlett Packard Enterprise. He is working on programmability aspects in the Memory Driven Computing paradigm. Before that he finished his PhD from INRIA, France on scalable garbage collection for NUMA architectures. Before that he worked as a Linux kernel developer for a year in an Indian startup.
Join us after the talk at the Tied House for drinks and food!