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

High-Performance Transactions for Persistent Memories

Published: 25 March 2016 Publication History

Abstract

Emerging non-volatile memory (NVRAM) technologies offer the durability of disk with the byte-addressability of DRAM. These devices will allow software to access persistent data structures directly in NVRAM using processor loads and stores, however, ensuring consistency of persistent data across power failures and crashes is difficult. Atomic, durable transactions are a widely used abstraction to enforce such consistency. Implementing transactions on NVRAM requires the ability to constrain the order of NVRAM writes, for example, to ensure that a transaction's log record is complete before it is marked committed. Since NVRAM write latencies are expected to be high, minimizing these ordering constraints is critical for achieving high performance. Recent work has proposed programming interfaces to express NVRAM write ordering constraints to hardware so that NVRAM writes may be coalesced and reordered while preserving necessary constraints. Unfortunately, a straightforward implementation of transactions under these interfaces imposes unnecessary constraints. We show how to remove these dependencies through a variety of techniques, notably, deferring commit until after locks are released. We present a comprehensive analysis contrasting two transaction designs across three NVRAM programming interfaces, demonstrating up to 2.5x speedup.

References

[1]
Sarita V. Adve and Kourosh Gharachorloo. "Shared Memory Consistency Models: A Tutorial" In IEEE Computer, Vol. 29 No. 12, December 1996.
[2]
Kumud Bhandari, Dhruva R. Chakrabarti, and Hans-J. Boehm. "Implications of CPU Caching on Byte-addressable Non-Volatile Memory Programming" Technical Report HPL-2012--236, Hewlett-Packard, 2012.
[3]
Dhruva R. Chakrabarti, Hans-J. Boehm, and Kumud Bhandari. "Atlas: Leveraging Locks for Non-volatile Memory Consistency" In Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2014.
[4]
Peter M. Chen, Wee Teck Ng, Subhachandra Chandra, Christopher M. Aycock, Gurushankar Rajamani, and David E. Lowell. "The Rio File Cache: Surviving Operating System Crashes" In International Conference on Architectural Support for Programming Languages and Operating Systems, 1996.
[5]
Shimin Chen, Phillip B. Gibbons, and Suman Nath. "Rethinking Database Algorithms for Phase Change Memory" In Conference on Innovative Data Systems Research, 20
[6]
Vijay Chidambaram, Thanumalayan Sankaranarayana Pillai, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. "Optimistic Crash Consistency" In Symposium on Operating Systems Principles, 2013.
[7]
Joel Coburn, Trevor Bunker, Meir Shwarz, Rajesh K. Gupta, and Steven Swanson. "From ARIES to MARS:Transaction Support for Next-Generation Solid-State Drives" In Symposium on Operating System Principles, 2013.
[8]
Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. "NV-Heaps: Making Persistent Objects Fast and Safe with Next-Generation, Non-Volatile Memories" In International Conference on Architectural Support for Programming Languages and Operating Systems, 2011.
[9]
Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. "Better I/O Through Byte-Addressable, Persistent Memory" In Symposium on Operating Systems Principles, 2009.
[10]
David J. DeWitt, Randy H. Katz, Frank Olken, Leonard D. Shapiro, Michael R. Stonebraker, and David A. Wood. "Implementation Techniques for Main Memory Database Systems" In International Conference on Management of Data, 1984.
[11]
Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. "System Software for Persistent Memory" In European Conference on Computer Systems, 2014.
[12]
Jim Gray and Andreas Reuter. "Transaction Processing: Concepts and Techniques" Morgan Kaufmann Publishers, Inc., 1993.
[13]
Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. "NVRAM-aware Logging in Transaction Systems" In Proceedings of the VLDB Endowment, 2014.
[14]
Intel. "Intel Architecture Instruction Set Extensions Programming Reference (319433-023)" https://software.intel.com/sites/default/files/managed/0d/53/319433-023.pdf, 2014.
[15]
Intel and Micron. "Intel and Micron Produce Breakthrough Memory Technology" http://newsroom.intel.com/community/intel_newsroom/blog/2015/07/28/intel-and-micron-produce-breakthrough-memory-\\technology, 2015.
[16]
Ryan Johnson, Ippokratis Pandis, Radu Stoica, Manos Athanassoulis, and Anastasia Ailamaki. "Aether: A Scalable Approach to Logging" In Proceedings of the VLDB Endowment, 2010.
[17]
Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M. Chen, and Thomas F. Wenisch. "Persistency Programming 101" In Non-Volatile Memories Workshop, 2015.
[18]
Leslie Lamport. "Time, Clocks, and the Ordering of Events in a Distributed System" In Communications of the ACM, Vol. 21, July 1978.
[19]
Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. "Architecting Phase Change Memory as a Scalable Dram Alternative" In International Symposium on Computer Architecture, 2009.
[20]
Eunji Lee, Hyokyung Bahn, and Sam H. Noh. "Unioning of the Buffer Cache and Journaling Layers with Non-volatile Memory" In Conference on File and Storage Technologies, 2013.
[21]
David E. Lowell and Peter M. Chen. "Free Transactions with Rio Vista". In Symposium on Operating Systems Principles, 1997.
[22]
Y. Lu, J. Shu, L. Sun, and O. Mutlu. "Loose-Ordering Consistency for Persistent Memory" In International Conference on Computer Design, 2014.
[23]
Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. "Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation" In Conference on Programming Language Design and Implementation, 2005.
[24]
C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, and Peter Schwarz. "ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging" In ACM Transactions on Database Systems, Vol. 17 No. 1, 1992.
[25]
Dushyanth Narayanan and Orion Hodson. "Whole-System Persistence" In International Conference on Architectural Support for Programming Languages and Operating Systems, 2012.
[26]
Simo Neuvonen, Antoni Wolski, Markku Manner, and Vilho Raatikka. "Telecom Application Transaction Processing Benchmark" http://tatpbenchmark.sourceforge.net/.
[27]
Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. "Memory Persistency" In International Symposium on Computer Architecture, 2014.
[28]
Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andreas C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. "IRON File Systems" In Symposium on Operating Systems Principles, 2005.
[29]
Alexander Thomson and Daniel J. Abadi. "The Case for Determinism in Database Systems" In Proceedings of the VLDB Endowment, 2010.
[30]
Transaction Processing Performance Council (TPC). "TPC Benchmark B" http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5--11.pdf.
[31]
Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. "Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory" In Conference on File and Storage Technologies, 20
[32]
Tianzheng Wang and Ryan Johnson. "Scalable Logging through Emerging Non-Volatile Memory" In Proceedings of the VLDB Endowment, 2014.
[33]
Haris Volos, Andres Jaan Tack, and Michael M. Swift. "Mnemosyne: Lightweight Persistent Memory" In International Conference on Architectural Support for Programming Languages and Operating Systems, 2011.
[34]
Jishen Zhao, Sheng Li, Doe Hyun Yoon, Yuan Xie, and Norman P. Jouppi. "Kiln: Closing the Performance Gap Between Systems With and Without Persistence Support" In International Symposium on Microarchitecure, 2013.
[35]
Jishen Zhao, Onur Mutlu, and Yuan Xie. "FIRM: Fair and High-performance Memory Control for Peristent Memory Systems" In International Symposium on Microarchitecure, 2014.

Cited By

View all
  • (2024)A verified durable transactional mutex lock for persistent x86-TSOFormal Methods in System Design10.1007/s10703-024-00462-1Online publication date: 31-Jul-2024
  • (2024)A quantitative evaluation of persistent memory hash indexesThe VLDB Journal — The International Journal on Very Large Data Bases10.1007/s00778-023-00812-133:2(375-397)Online publication date: 1-Mar-2024
  • (2023)Persistent Processor ArchitectureProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3623772(1075-1091)Online publication date: 28-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS '16: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems
March 2016
824 pages
ISBN:9781450340915
DOI:10.1145/2872362
  • General Chair:
  • Tom Conte,
  • Program Chair:
  • Yuanyuan Zhou
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: 25 March 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. memory persistency
  2. non-volatile memory
  3. recoverability
  4. transactions

Qualifiers

  • Research-article

Funding Sources

Conference

ASPLOS '16

Acceptance Rates

ASPLOS '16 Paper Acceptance Rate 53 of 232 submissions, 23%;
Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)219
  • Downloads (Last 6 weeks)36
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A verified durable transactional mutex lock for persistent x86-TSOFormal Methods in System Design10.1007/s10703-024-00462-1Online publication date: 31-Jul-2024
  • (2024)A quantitative evaluation of persistent memory hash indexesThe VLDB Journal — The International Journal on Very Large Data Bases10.1007/s00778-023-00812-133:2(375-397)Online publication date: 1-Mar-2024
  • (2023)Persistent Processor ArchitectureProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3623772(1075-1091)Online publication date: 28-Oct-2023
  • (2023)TL4xProceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3572848.3577495(245-259)Online publication date: 25-Feb-2023
  • (2023)Constant RMR System-wide Failure Resilient Durable Locks with Dynamic JoiningProceedings of the 35th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3558481.3591100(227-237)Online publication date: 17-Jun-2023
  • (2023)NearPM: A Near-Data Processing System for Storage-Class ApplicationsProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3587456(751-767)Online publication date: 8-May-2023
  • (2023)Using Logging-on-Write to Improve Non-Volatile Memory Checkpoints via Processing-in-Memory2023 IEEE 35th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD)10.1109/SBAC-PAD59825.2023.00016(68-77)Online publication date: 17-Oct-2023
  • (2023)Flexible scheduling of transactional memory on treesTheoretical Computer Science10.1016/j.tcs.2023.114184(114184)Online publication date: Sep-2023
  • (2023)DONUTS: An efficient method for checkpointing in non‐volatile memoriesConcurrency and Computation: Practice and Experience10.1002/cpe.757435:18Online publication date: 24-Jan-2023
  • (2022)PaviseProceedings of the International Conference on Parallel Architectures and Compilation Techniques10.1145/3559009.3569662(109-123)Online publication date: 8-Oct-2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media