Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3173162.3173201acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Espresso: Brewing Java For More Non-Volatility with Non-volatile Memory

Published: 19 March 2018 Publication History
  • Get Citation Alerts
  • 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.

    References

    [1]
    DataNucleus. http://www.datanucleus.com/.
    [2]
    Open source database engines in java. https://java-source.net/open-source/database-engines.
    [3]
    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.
    [4]
    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.
    [5]
    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.
    [6]
    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.
    [7]
    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.
    [8]
    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.
    [9]
    L. DeMichiel and M. Keith. Java persistence api. JSR, 220, 2006.
    [10]
    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.
    [11]
    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.
    [12]
    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.
    [13]
    Hewlett Packard Enterprise. Managed data structures. https://github.com/HewlettPackard/mds.
    [14]
    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.
    [15]
    INTEL. Persistent collections for java. https://github.com/pmem/pcj.
    [16]
    INTEL. pmem.io: Persistent memory programming. http://pmem.io/.
    [17]
    Intel and Micron. Intel and micron produce breakthrough memory technology. https://newsroom.intel.com/news-releases/intel-and-micron-produce-breakthrough-memory-technology/.
    [18]
    D. Jordan and C. Russell. Java data objects. " O'Reilly Media, Inc.", 2003.
    [19]
    M. Jordan. Early experiences with persistent java. In Proceedings of the First International Workshop on Persistence and Java, 2001.
    [20]
    M. J. Jordan and M. P. Atkinson. Orthogonal persistence for java mid-term report. Morrison et al.{161}, pages 335-352, 1999.
    [21]
    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.
    [22]
    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.
    [23]
    S. Liang and G. Bracha. Dynamic class loading in the java virtual machine. Acm sigplan notices, 33(10):36-44, 1998.
    [24]
    T. Lindholm, F. Yellin, G. Bracha, and A. Buckley. The Java virtual machine specification. Pearson Education, 2014.
    [25]
    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.
    [26]
    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.
    [27]
    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.
    [28]
    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.
    [29]
    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.
    [30]
    Micron. Nvdimm. https://www.micron.com/products/dram-modules/nvdimm/.
    [31]
    T. Mueller. H2 database, 2012.
    [32]
    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.
    [33]
    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.
    [34]
    ObjectDB Software Ltd. Jpa performance benchmark (jpab). http://www.jpab.org/.
    [35]
    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.
    [36]
    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.
    [37]
    J. Paterson, S. Edlich, H. Hörning, and R. Hörning. db4o. 2006.
    [38]
    S. Pelley, P. M. Chen, and T. F. Wenisch. Memory persistency. ACM SIGARCH Computer Architecture News, 42(3):265-276, 2014.
    [39]
    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.
    [40]
    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.
    [41]
    The Transaction Processing Council. TPC-C Benchmark V5.11. http://www.tpc.org/tpcc/.
    [42]
    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.
    [43]
    S. J. White and D. J. DeWitt. QuickStore: A high performance mapped object store, volume 23. ACM, 1994.
    [44]
    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.
    [45]
    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.
    [46]
    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.

    Cited By

    View all
    • (2023)Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified Memory on Managed HeapsProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622984(143-157)Online publication date: 19-Oct-2023
    • (2023)Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared MemoryProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613135(658-674)Online publication date: 23-Oct-2023
    • (2023)StaticPersist: Compiler Support for PMEM ProgrammingVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_3(44-65)Online publication date: 16-Jan-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS '18: Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems
    March 2018
    827 pages
    ISBN:9781450349116
    DOI:10.1145/3173162
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 53, Issue 2
      ASPLOS '18
      February 2018
      809 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/3296957
      Issue’s Table of Contents
    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]

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 March 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. crash consistency
    2. java virtual machine
    3. non-volatile memory

    Qualifiers

    • Research-article

    Funding Sources

    • China National Natural Science Foundation
    • National Key Research & Development Program of China

    Conference

    ASPLOS '18

    Acceptance Rates

    ASPLOS '18 Paper Acceptance Rate 56 of 319 submissions, 18%;
    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)44
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified Memory on Managed HeapsProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622984(143-157)Online publication date: 19-Oct-2023
    • (2023)Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared MemoryProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613135(658-674)Online publication date: 23-Oct-2023
    • (2023)StaticPersist: Compiler Support for PMEM ProgrammingVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_3(44-65)Online publication date: 16-Jan-2023
    • (2022)Replication-based object persistence by reachabilityProceedings of the 2022 ACM SIGPLAN International Symposium on Memory Management10.1145/3520263.3534653(43-56)Online publication date: 14-Jun-2022
    • (2022)Preserving Addressability Upon GC-Triggered Data Movements on Non-Volatile MemoryACM Transactions on Architecture and Code Optimization10.1145/351170619:2(1-26)Online publication date: 24-Mar-2022
    • (2022)Understanding and detecting deep memory persistency bugs in NVM programs with DeepMCProceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3503221.3508427(322-336)Online publication date: 2-Apr-2022
    • (2022)FFCCDProceedings of the 49th Annual International Symposium on Computer Architecture10.1145/3470496.3527406(274-288)Online publication date: 18-Jun-2022
    • (2021)Persistent software transactional memory in HaskellProceedings of the ACM on Programming Languages10.1145/34735685:ICFP(1-29)Online publication date: 19-Aug-2021
    • (2021)Persistent MemoryACM Computing Surveys10.1145/346540254:7(1-37)Online publication date: 18-Jul-2021
    • (2021)Exploiting Intel optane persistent memory for full text searchProceedings of the 2021 ACM SIGPLAN International Symposium on Memory Management10.1145/3459898.3463906(80-93)Online publication date: 22-Jun-2021
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media