Abstract
Fast, byte-addressable non-volatile memory (NVM) embraces both near-DRAM latency and disk-like persistence, which has generated considerable interests to revolutionize system software stack and programming models. However, it is less understood how NVM can be combined with managed runtime like Java virtual machine (JVM) to ease persistence management. This paper proposes Espresso, a holistic extension to Java and its runtime, to enable Java programmers to exploit NVM for persistence management with high performance. Espresso first provides a general persistent heap design called Persistent Java Heap (PJH) to manage persistent data as normal Java objects. The heap is then strengthened with a recoverable mechanism to provide crash consistency for heap metadata. Espresso further provides a new abstraction called Persistent Java Object (PJO) to provide an easy-to-use but safe persistence programming model for programmers to persist application data. Evaluation confirms that Espresso significantly outperforms state-of-art NVM support for Java (i.e., JPA and PCJ) while being compatible to data structures in existing Java programs.
- DataNucleus. http://www.datanucleus.com/.Google Scholar
- Open source database engines in java. https://java-source.net/open-source/database-engines.Google Scholar
- M. P. Atkinson, L. Daynes, M. J. Jordan, T. Printezis, and S. Spence. An orthogonally persistent java. ACM Sigmod Record, 25(4):68-75, 1996. Google Scholar
Digital Library
- K. Bhandari, D. R. Chakrabarti, and H.-J. Boehm. Makalu: Fast recoverable allocation of non-volatile memory. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 677-694. ACM, 2016. Google Scholar
Digital Library
- H.-J. Boehm and D. R. Chakrabarti. Persistence programming models for non-volatile memory. In Proceedings of the 2016 ACM SIG- PLAN International Symposium on Memory Management, pages 55-67. ACM, 2016. Google Scholar
Digital Library
- D. R. Chakrabarti, H.-J. Boehm, and K. Bhandari. Atlas: Leveraging locks for non-volatile memory consistency. In ACM SIGPLAN Notices, volume 49, pages 433-452. ACM, 2014. Google Scholar
Digital Library
- H. Chen, R. Chen, X. Wei, J. Shi, Y. Chen, Z. Wang, B. Zang, and H. Guan. Fast in-memory transaction processing using rdma and htm. ACM Trans. Comput. Syst., 35(1):3:1-3:37, July 2017. Google Scholar
Digital Library
- J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. Nv-heaps: making persistent objects fast and safe with next-generation, non-volatile memories. ACM Sigplan Notices, 46(3):105-118, 2011. Google Scholar
Digital Library
- L. DeMichiel and M. Keith. Java persistence api. JSR, 220, 2006. Google Scholar
Digital Library
- M. Dong and H. Chen. Soft updates made simple and fast on non-volatile memory. In 2017 USENIX Annual Technical Conference (USENIX ATC 17), pages 719-731, Santa Clara, CA, 2017. USENIX Association. Google Scholar
Digital Library
- L. Gidra, G. Thomas, J. Sopena, and M. Shapiro. A study of the scalability of stop-the-world garbage collectors on multicores. In ACM SIGPLAN Notices, volume 48, pages 229-240. ACM, 2013. Google Scholar
Digital Library
- L. Gidra, G. Thomas, J. Sopena, M. Shapiro, and N. Nguyen. Nu-magic: a garbage collector for big data on big numa machines. In ACM SIGARCH Computer Architecture News, volume 43, pages 661-673. ACM, 2015. Google Scholar
Digital Library
- Hewlett Packard Enterprise. Managed data structures. https://github.com/HewlettPackard/mds.Google Scholar
- T. C.-H. Hsu, H. Brügner, I. Roy, K. Keeton, and P. Eugster. Nvthreads: Practical persistence for multi-threaded applications. In Proceedings of the Twelfth European Conference on Computer Systems, pages 468-482. ACM, 2017. Google Scholar
Digital Library
- INTEL. Persistent collections for java. https://github.com/pmem/pcj.Google Scholar
- INTEL. pmem.io: Persistent memory programming. http://pmem.io/.Google Scholar
- Intel and Micron. Intel and micron produce breakthrough memory technology. https://newsroom.intel.com/news-releases/intel-and-micron-produce-breakthrough-memory-technology/.Google Scholar
- D. Jordan and C. Russell. Java data objects. " O'Reilly Media, Inc.", 2003. Google Scholar
Digital Library
- M. Jordan. Early experiences with persistent java. In Proceedings of the First International Workshop on Persistence and Java, 2001.Google Scholar
- M. J. Jordan and M. P. Atkinson. Orthogonal persistence for java mid-term report. Morrison et al.{161}, pages 335-352, 1999. Google Scholar
Digital Library
- H. Kimura. Foedus: Oltp engine for a thousand cores and nvram. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pages 691-706. ACM, 2015. Google Scholar
Digital Library
- A. Kolli, S. Pelley, A. Saidi, P. M. Chen, and T. F. Wenisch. High-performance transactions for persistent memories. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, pages 399-411. ACM, 2016. Google Scholar
Digital Library
- S. Liang and G. Bracha. Dynamic class loading in the java virtual machine. Acm sigplan notices, 33(10):36-44, 1998. Google Scholar
Digital Library
- T. Lindholm, F. Yellin, G. Bracha, and A. Buckley. The Java virtual machine specification. Pearson Education, 2014. Google Scholar
Digital Library
- D. Lion, A. Chiu, H. Sun, X. Zhuang, N. Grcevski, and D. Yuan. Don't get caught in the cold, warm-up your jvm: Understand and eliminate jvm warm-up overhead in data-parallel systems. In Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation, pages 383-400. USENIX Association, 2016. Google Scholar
Digital Library
- B. Liskov, A. Adya, M. Castro, S. Ghemawat, R. Gruber, U. Maheshwari, A. C. Myers, M. Day, and L. Shrira. Safe and efficient sharing of persistent objects in thor. ACM SIGMOD Record, 25(2):318-329, 1996. Google Scholar
Digital Library
- M. Liu, M. Zhang, K. Chen, X. Qian, Y. Wu, W. Zheng, and J. Ren. Dudetm: Building durable transactions with decoupling for persistent memory. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, pages 329-343. ACM, 2017. Google Scholar
Digital Library
- D. E. Lowell and P. M. Chen. Free transactions with rio vista. In ACM SIGOPS Operating Systems Review, volume 31, pages 92-101. ACM, 1997. Google Scholar
Digital Library
- A. Memaripour, A. Badam, A. Phanishayee, Y. Zhou, R. Alagappan, K. Strauss, and S. Swanson. Atomic in-place updates for non- volatile main memories with kamino-tx. In EuroSys, pages 499-512, 2017. Google Scholar
Digital Library
- Micron. Nvdimm. https://www.micron.com/products/dram-modules/nvdimm/.Google Scholar
- T. Mueller. H2 database, 2012.Google Scholar
- S. Nalli, S. Haria, M. D. Hill, M. M. Swift, H. Volos, and K. Keeton. An analysis of persistent memory use with whisper. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, pages 135-148. ACM, 2017. Google Scholar
Digital Library
- K. Nguyen, L. Fang, G. Xu, B. Demsky, S. Lu, S. Alamian, and O. Mutlu. Yak: A high-performance big-data-friendly garbage collector. In Proc. the 12th USENIX Conference on Operating Systems Design and Implementation, 2016. Google Scholar
Digital Library
- ObjectDB Software Ltd. Jpa performance benchmark (jpab). http://www.jpab.org/.Google Scholar
- J. O'Toole, S. Nettles, and D. Gifford. Concurrent compacting garbage collection of a persistent heap. In ACM SIGOPS Operating Systems Review, volume 27, pages 161-174. ACM, 1994. Google Scholar
Digital Library
- M. Paleczny, C. Vick, and C. Click. The java hotspot tm server compiler. In Proceedings of the 2001 Symposium on Java TM Virtual Machine Research and Technology Symposium-Volume 1, pages 1-1. USENIX Association, 2001. Google Scholar
Digital Library
- J. Paterson, S. Edlich, H. Hörning, and R. Hörning. db4o. 2006.Google Scholar
- S. Pelley, P. M. Chen, and T. F. Wenisch. Memory persistency. ACM SIGARCH Computer Architecture News, 42(3):265-276, 2014. Google Scholar
Digital Library
- M. Satyanarayanan, H. H. Mashburn, P. Kumar, D. C. Steere, and J. J. Kistler. Lightweight recoverable virtual memory. ACM Transactions on Computer Systems (TOCS), 12(1):33-57, 1994. Google Scholar
Digital Library
- J. Seo, W.-H. Kim, W. Baek, B. Nam, and S. H. Noh. Failure-atomic slotted paging for persistent memory. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, pages 91-104. ACM, 2017. Google Scholar
Digital Library
- The Transaction Processing Council. TPC-C Benchmark V5.11. http://www.tpc.org/tpcc/.Google Scholar
- H. Volos, A. J. Tack, and M. M. Swift. Mnemosyne: Lightweight persistent memory. In ACM SIGARCH Computer Architecture News, volume 39, pages 91-104. ACM, 2011. Google Scholar
Digital Library
- S. J. White and D. J. DeWitt. QuickStore: A high performance mapped object store, volume 23. ACM, 1994. Google Scholar
Digital Library
- F. Xia, D. Jiang, J. Xiong, and N. Sun. Hikv: A hybrid index key-value store for dram-nvm memory systems. In 2017 USENIX Annual Technical Conference (USENIX ATC 17), pages 349-362, Santa Clara, CA, 2017. USENIX Association. Google Scholar
Digital Library
- J. Yang, Q. Wei, C. Chen, C. Wang, K. L. Yong, and B. He. Nv-tree: reducing consistency cost for nvm-based single level systems. In 13th USENIX Conference on File and Storage Technologies (FAST 15), pages 167-181, 2015. Google Scholar
Digital Library
- Y. Yu, T. Lei, W. Zhang, H. Chen, and B. Zang. Performance analysis and optimization of full garbage collection in memory-hungry environments. In Proceedings of the 12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, pages 123-130. ACM, 2016. Google Scholar
Digital Library
Index Terms
Espresso: Brewing Java For More Non-Volatility with Non-volatile Memory
Recommendations
Espresso: Brewing Java For More Non-Volatility with Non-volatile Memory
ASPLOS '18: Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating SystemsFast, byte-addressable non-volatile memory (NVM) embraces both near-DRAM latency and disk-like persistence, which has generated considerable interests to revolutionize system software stack and programming models. However, it is less understood how NVM ...
GCPersist: an efficient GC-assisted lazy persistency framework for resilient Java applications on NVM
VEE '20: Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution EnvironmentsThe emergence of non-volatile memory (NVM) has stimulated broad interests in building efficient and persistent systems and programming models. However, most prior work is built atop an eager persistency model, which mandates applications to persist ...
Bridging the performance gap for copy-based garbage collectors atop non-volatile memory
EuroSys '21: Proceedings of the Sixteenth European Conference on Computer SystemsNon-volatile memory (NVM) is expected to revolutionize the memory hierarchy with not only non-volatility but also large capacity and power efficiency. Memory-intensive applications, which are often written in managed languages like Java, would run atop ...







Comments