TY - GEN
T1 - UniHeap
T2 - 14th ACM International Conference on Systems and Storage, SYSTOR 2021
AU - Li, Daixuan
AU - Reidys, Benjamin
AU - Sun, Jinghan
AU - Shull, Thomas
AU - Torrellas, Josep
AU - Huang, Jian
N1 - Publisher Copyright:
© 2021 ACM.
PY - 2021/6/14
Y1 - 2021/6/14
N2 - Byte-addressable, non-volatile memory (NVM) is emerging as a promising technology. To facilitate its wide adoption, employing NVM in managed runtimes like JVM has proven to be an effective approach (i.e., managed NVM). However, such an approach is runtime specific, it lacks a generic abstraction across different managed languages. Similar to the well-known filesystem primitives that allow diverse programs to access the same file via the block I/O interface, managed NVM deserves the same system-wide property for persistent objects across managed runtimes with low overhead. In this paper, we present UniHeap, a new NVM framework for managing persistent objects. It proposes a unified persistent object model that supports various managed languages, and manages NVM within a shared heap that enables cross-language persistent object sharing. UniHeap reduces the object persistence overhead by managing the shared heap in a log-structured manner and coalescing object updates during the garbage collection. We implement UniHeap as a generic framework and extend it to different managed runtimes that include HotSpot JVM, cPython, and JavaScript engine SpiderMonkey. We evaluate UniHeap with a variety of applications, such as key-value store and transactional database. Our evaluation shows that UniHeap significantly out-performs state-of-the-art object sharing approaches, while introducing negligible overhead to the managed runtimes.
AB - Byte-addressable, non-volatile memory (NVM) is emerging as a promising technology. To facilitate its wide adoption, employing NVM in managed runtimes like JVM has proven to be an effective approach (i.e., managed NVM). However, such an approach is runtime specific, it lacks a generic abstraction across different managed languages. Similar to the well-known filesystem primitives that allow diverse programs to access the same file via the block I/O interface, managed NVM deserves the same system-wide property for persistent objects across managed runtimes with low overhead. In this paper, we present UniHeap, a new NVM framework for managing persistent objects. It proposes a unified persistent object model that supports various managed languages, and manages NVM within a shared heap that enables cross-language persistent object sharing. UniHeap reduces the object persistence overhead by managing the shared heap in a log-structured manner and coalescing object updates during the garbage collection. We implement UniHeap as a generic framework and extend it to different managed runtimes that include HotSpot JVM, cPython, and JavaScript engine SpiderMonkey. We evaluate UniHeap with a variety of applications, such as key-value store and transactional database. Our evaluation shows that UniHeap significantly out-performs state-of-the-art object sharing approaches, while introducing negligible overhead to the managed runtimes.
KW - Managed runtime
KW - Memory persistency
KW - Non-volatile memory
KW - Persistent objects
UR - http://www.scopus.com/inward/record.url?scp=85108429277&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85108429277&partnerID=8YFLogxK
U2 - 10.1145/3456727.3463775
DO - 10.1145/3456727.3463775
M3 - Conference contribution
AN - SCOPUS:85108429277
T3 - SYSTOR 2021 - Proceedings of the 14th ACM International Conference on Systems and Storage
BT - SYSTOR 2021 - Proceedings of the 14th ACM International Conference on Systems and Storage
PB - Association for Computing Machinery
Y2 - 14 June 2021 through 16 June 2021
ER -