Nothing Special   »   [go: up one dir, main page]

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

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

Please enable JavaScript to view thecomments powered by Disqus.

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)42
  • Downloads (Last 6 weeks)3
Reflects downloads up to 09 Nov 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