Creative Commons Attribution 4.0 International license
In recent years, we begin to see Java-based systems embrace off-heap allocation for their big data demands. As of today, these system rely on simple ad-hoc garbage-collection solutions, which restrict the usage of off-heap data. This paper introduces the abstraction of safe off-heap memory allocation and reclamation (SOMAR), a thread-safe memory allocation and reclamation scheme for off-heap data in otherwise managed environments. SOMAR allows multi-threaded Java programs to use off-heap memory seamlessly. To realize this abstraction, we present Nova, Novel Off-heap Versioned Allocator, a lock-free SOMAR implementation. Our experiments show that Nova can be used to store off-heap data in Java data structures with better performance than ones managed by Java’s automatic GC. We further integrate Nova into the open-source Oak concurrent map library, which allows Oak to reclaim keys while the data structure is being accessed.
@InProceedings{fakhoury_et_al:LIPIcs.OPODIS.2023.15,
author = {Fakhoury, Ramy and Braginsky, Anastasia and Keidar, Idit and Zuriel, Yoav},
title = {{Nova: Safe Off-Heap Memory Allocation and Reclamation}},
booktitle = {27th International Conference on Principles of Distributed Systems (OPODIS 2023)},
pages = {15:1--15:20},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-308-9},
ISSN = {1868-8969},
year = {2024},
volume = {286},
editor = {Bessani, Alysson and D\'{e}fago, Xavier and Nakamura, Junya and Wada, Koichi and Yamauchi, Yukiko},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.OPODIS.2023.15},
URN = {urn:nbn:de:0030-drops-195052},
doi = {10.4230/LIPIcs.OPODIS.2023.15},
annote = {Keywords: memory reclamation, concurrency, performance, off-heap allocation}
}
archived version