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, which lacks a generic abstraction across different managed languages. Similar to the well-known filesystem primitives that allow diverse programs to access same files 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 outperforms state-of-the-art object sharing approaches, while introducing negligible overhead to the managed runtimes.
翻译:平流处理的非挥发性内存(NVM)正在成为一种大有希望的技术。为了便于广泛采用,在像JVM这样的有节制运行时使用NVM(NVM)已被证明是一种有效的方法(即管理NVM)。然而,这种方法具有运行时间特性,缺乏不同管理语言的通用抽象性。类似于众所周知的文件系统原始性,它允许不同的程序通过块 I/O 接口访问相同的文件,所管理的NVM在管理下运行的运行时,对于管理下的低管理下运行期间的持久性天体来说,具有同样的全系统性。在本文件中,我们介绍了UniHeap,一个新的管理下运行框架,用于管理持久性天体。它提出了一个统一的持久性对象模型,用于支持各种管理下的语文,并在共享的堆积中管理 NVMM 。Unicheap 管理下运行了共同的堆积, 将UniversionalS-Reptreadal-developmental-al-developal-deal-Shoal-Smal-Smal-devalueal-IMMM-Syal-Syal exvalvalviews ex exvalviews ex ex ex ex ex exvalueal ex ex ex ex 和Universistrual ex ex ex ex ex 和UIWefolviewal 和UUHIT 和UHIT-Siltal-SIS exvalvalviewvalvalvalvalvalvalview)。