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} }
Feedback for Dagstuhl Publishing