skip to main content
10.1145/3516807.3516822acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
research-article

Transparent and lightweight object placement for managed workloads atop hybrid memories

Published:25 February 2022Publication History

ABSTRACT

Managed workloads show strong demand for large memory capacity, which can be satisfied by a hybrid memory sub-system composed of traditional DRAM and the emerging non-volatile memory (NVM) technology. Nevertheless, NVM devices are limited by deficiencies like write endurance and asymmetric bandwidth, which threatens managed applications’ performance and reliability. Prior work has proposed different object placement mechanisms to mitigate problems introduced by NVM, but they require domain-specific knowledge on applications or significant change on managed runtime. By analyzing the performance of representative data-intensive workloads atop NVM, this paper finds that reducing write operations is key for performance and wear-leveling. To this end, this paper proposes GCMove, a transparent and efficient object placement mechanism for hybrid memories. GCMove embraces a lightweight write barrier for write detection and relies on garbage collections (GC) to copy objects into different devices according to their write-related behaviors. Compared with prior work, GCMove does not require significant changes in heap layout and thus can be easily integrated with mainstream copy-based garbage collection. The evaluation on various managed workloads shows that GCMove can eliminate 99.8% of NVM write operations on average and improve the performance by up to 19.81× compared with the NVM-only version.

References

  1. Shoaib Akram. 2021. Performance Evaluation of Intel Optane Memory for Managed Workloads. ACM Transactions on Architecture and Code Optimization (TACO), 18, 3 (2021), 1–26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Shoaib Akram, Jennifer Sartor, Kathryn McKinley, and Lieven Eeckhout. 2019. Crystal Gazer: Profile-driven write-rationing garbage collection for hybrid memories. Proceedings of the ACM on Measurement and Analysis of Computing Systems, 3, 1 (2019), 9.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Shoaib Akram, Jennifer B Sartor, Kathryn S McKinley, and Lieven Eeckhout. 2018. Write-rationing garbage collection for hybrid memories. ACM SIGPLAN Notices, 53, 4 (2018), 62–77.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cliff Click, Gil Tene, and Michael Wolf. 2005. The pauseless GC algorithm. In Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments. 46–56.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. David Detlefs, Christine Flood, Steve Heller, and Tony Printezis. 2004. Garbage-first garbage collection. In Proceedings of the 4th international symposium on Memory management. 37–48.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Andrew Dinn. 2018. JEP 352: Non-Volatile Mapped Byte Buffers. https://openjdk.java.net/jeps/352.Google ScholarGoogle Scholar
  7. Mingkai Dong and Haibo Chen. 2017. Soft Updates Made Simple and Fast on Non-volatile Memory. In 2017 USENIX Annual Technical Conference (USENIX ATC 17). USENIX Association, Santa Clara, CA. 719–731. isbn:978-1-931971-38-6Google ScholarGoogle Scholar
  8. Lu Fang, Khanh Nguyen, Guoqing Xu, Brian Demsky, and Shan Lu. 2015. Interruptible tasks: Treating memory pressure as interrupts for highly scalable data-parallel programs. In Proceedings of the 25th Symposium on Operating Systems Principles. 394–409.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Christine H Flood, Roman Kennke, Andrew Dinn, Andrew Haley, and Roland Westrelin. 2016. Shenandoah: An open-source concurrent compacting garbage collector for openjdk. In Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools. 1–9.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jinyu Gu, Qianqian Yu, Xiayang Wang, Zhaoguo Wang, Binyu Zang, Haibing Guan, and Haibo Chen. 2019. Pisces: a scalable and efficient persistent transactional memory. In 2019 $USENIX$ Annual Technical Conference ($USENIX$$ATC$ 19). 913–928.Google ScholarGoogle Scholar
  11. Hewlett Packard Enterprise. 2018. Managed Data Structures. https://github.com/HewlettPackard/mds.Google ScholarGoogle Scholar
  12. Mark Hildebrand, Jawad Khan, Sanjeev Trika, Jason Lowe-Power, and Venkatesh Akella. 2020. Autotm: Automatic tensor movement in heterogeneous memory systems using integer linear programming. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. 875–890.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. INTEL. 2019. Intel(R) Optane(TM) DC Persistent Memory.. https://www.intel.com/content/www/us/en/architecture-andtechnology/optane-dc-persistent-memory.html..Google ScholarGoogle Scholar
  14. INTEL. 2019. Persistent Collections for Java. https://github.com/pmem/pcj.Google ScholarGoogle Scholar
  15. Kishor Kharbas. 2016. JEP 316: Heap Allocation on Alternative Memory Devices. https://openjdk.java.net/jeps/316.Google ScholarGoogle Scholar
  16. Jérôme Kunegis. 2013. Konect: the koblenz network collection. In Proceedings of the 22nd international conference on World Wide Web. 1343–1350.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Anatole Lefort, Yohan Pipereau, Kwabena Amponsem, Pierre Sutra, and Gaël Thomas. 2021. J-NVM: Off-heap Persistent Objects in Java. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles. 408–423.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Christian Navasca, Cheng Cai, Khanh Nguyen, Brian Demsky, Shan Lu, Miryung Kim, and Guoqing Harry Xu. 2019. Gerenuk: thin computation over big native data using speculative program transformation. In Proceedings of the 27th ACM Symposium on Operating Systems Principles. 538–553.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Khanh Nguyen, Lu Fang, Christian Navasca, Guoqing Xu, Brian Demsky, and Shan Lu. 2018. Skyway: Connecting managed heaps in distributed big data systems. In ACM SIGPLAN Notices. 53, 56–69.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Khanh Nguyen, Lu Fang, Guoqing Xu, Brian Demsky, Shan Lu, Sanazsadat Alamian, and Onur Mutlu. 2016. Yak: A high-performance big-data-friendly garbage collector. In Proc. the 12th USENIX Conference on Operating Systems Design and Implementation.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Julia Preusse, Jérôme Kunegis, Matthias Thimm, Steffen Staab, and Thomas Gottron. 2013. Structural dynamics of knowledge networks. In Seventh International AAAI Conference on Weblogs and Social Media.Google ScholarGoogle Scholar
  22. Aleksandar Prokopec, Andrea Rosà, David Leopoldseder, Gilles Duboscq, Petr Tuma, Martin Studener, Lubomír Bulej, Yudi Zheng, Alex Villazón, and Doug Simon. 2019. Renaissance: Benchmarking suite for parallel applications on the jvm. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. 31–47.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Moinuddin K Qureshi, Vijayalakshmi Srinivasan, and Jude A Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th annual international symposium on Computer architecture. 24–33.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Amanda Raybuck, Tim Stamler, Wei Zhang, Mattan Erez, and Simon Peter. 2021. HeMem: Scalable Tiered Memory Management for Big Data Applications and Real NVM. In Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles. 392–407.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Thomas Shull, Jian Huang, and Josep Torrellas. 2019. AutoPersist: an easy-to-use Java NVM framework based on reachability. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. 316–332.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Konstantin Taranov, Rodrigo Bruno, Gustavo Alonso, and Torsten Hoefler. 2021. Naos: Serialization-free $RDMA$ networking in Java. In 2021 $USENIX$ Annual Technical Conference ($USENIX$$ATC$ 21). 1–14.Google ScholarGoogle Scholar
  27. Chenxi Wang, Huimin Cui, Ting Cao, John Zigman, Haris Volos, Onur Mutlu, Fang Lv, Xiaobing Feng, and Guoqing Harry Xu. 2019. Panthera: holistic memory management for big data processing over hybrid memories. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. 347–362.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Chenxi Wang, Haoran Ma, Shi Liu, Yuanqi Li, Zhenyuan Ruan, Khanh Nguyen, Michael D Bond, Ravi Netravali, Miryung Kim, and Guoqing Harry Xu. 2020. Semeru: A memory-disaggregated managed runtime. In 14th $USENIX$ Symposium on Operating Systems Design and Implementation ($OSDI$ 20). 261–280.Google ScholarGoogle Scholar
  29. Mingyu Wu, Haibo Chen, Hao Zhu, Binyu Zang, and Haibing Guan. 2020. GCPersist: an efficient GC-assisted lazy persistency framework for resilient Java applications on NVM. In Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. 1–14.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Mingyu Wu, Ziming Zhao, Haoyu Li, Heting Li, Haibo Chen, Binyu Zang, and Haibing Guan. 2018. Espresso: Brewing java for more non-volatility with non-volatile memory. In ACM SIGPLAN Notices. 53, 70–83.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Fei Xia, Dejun Jiang, Jin Xiong, and Ninghui Sun. 2017. HiKV: A Hybrid Index Key-Value Store for DRAM-NVM Memory Systems. In 2017 USENIX Annual Technical Conference (USENIX ATC 17). USENIX Association, Santa Clara, CA. 349–362. isbn:978-1-931971-38-6Google ScholarGoogle Scholar
  32. Hao Xu, Yanmin Zhu, Yuting Chen, Linpeng Huang, Tianyou Li, and Pan Deng. 2018. Jsnvm: supporting data persistence in javascript using non-volatile memory. In 2018 IEEE 24th International Conference on Parallel and Distributed Systems (ICPADS). 457–464.Google ScholarGoogle ScholarCross RefCross Ref
  33. Albert Mingkun Yang, Erik Österlund, Jesper Wilhelmsson, Hanna Nyblom, and Tobias Wrigstad. 2020. ThinGC: complete isolation with marginal overhead. In Proceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management. 74–86.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Albert Mingkun Yang, Erik Österlund, and Tobias Wrigstad. 2020. Improving program locality in the GC using hotness. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. 301–313.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Jian Yang, Juno Kim, Morteza Hoseinzadeh, Joseph Izraelevitz, and Steve Swanson. 2020. An empirical guide to the behavior and use of scalable persistent memory. In 18th $USENIX$ Conference on File and Storage Technologies ($FAST$ 20). 169–182.Google ScholarGoogle Scholar
  36. Yanfei Yang, Mingyu Wu, Haibo Chen, and Binyu Zang. 2021. Bridging the performance gap for copy-based garbage collectors atop non-volatile memory. In Proceedings of the Sixteenth European Conference on Computer Systems. 343–358.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Matei Zaharia, Mosharaf Chowdhury, Michael J Franklin, Scott Shenker, and Ion Stoica. 2010. Spark: cluster computing with working sets. In Proceedings of the 2nd USENIX conference on Hot topics in cloud computing. 10–10.Google ScholarGoogle Scholar
  38. Matei Zaharia, Reynold S Xin, Patrick Wendell, Tathagata Das, Michael Armbrust, Ankur Dave, Xiangrui Meng, Josh Rosen, Shivaram Venkataraman, and Michael J Franklin. 2016. Apache spark: a unified engine for big data processing. Commun. ACM, 59, 11 (2016), 56–65.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Transparent and lightweight object placement for managed workloads atop hybrid memories

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        VEE 2022: Proceedings of the 18th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
        February 2022
        87 pages
        ISBN:9781450392518
        DOI:10.1145/3516807

        Copyright © 2022 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 25 February 2022

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate80of235submissions,34%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader