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.
- Sarita V. Adve and Kourosh Gharachorloo. "Shared Memory Consistency Models: A Tutorial" In IEEE Computer, Vol. 29 No. 12, December 1996.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- Shimin Chen, Phillip B. Gibbons, and Suman Nath. "Rethinking Database Algorithms for Phase Change Memory" In Conference on Innovative Data Systems Research, 20Google Scholar
- Vijay Chidambaram, Thanumalayan Sankaranarayana Pillai, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. "Optimistic Crash Consistency" In Symposium on Operating Systems Principles, 2013.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- Jim Gray and Andreas Reuter. "Transaction Processing: Concepts and Techniques" Morgan Kaufmann Publishers, Inc., 1993.Google Scholar
- Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. "NVRAM-aware Logging in Transaction Systems" In Proceedings of the VLDB Endowment, 2014.Google Scholar
- Intel. "Intel Architecture Instruction Set Extensions Programming Reference (319433-023)" https://software.intel.com/sites/default/files/managed/0d/53/319433-023.pdf, 2014.Google Scholar
- 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.Google Scholar
- Ryan Johnson, Ippokratis Pandis, Radu Stoica, Manos Athanassoulis, and Anastasia Ailamaki. "Aether: A Scalable Approach to Logging" In Proceedings of the VLDB Endowment, 2010.Google Scholar
- Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M. Chen, and Thomas F. Wenisch. "Persistency Programming 101" In Non-Volatile Memories Workshop, 2015.Google Scholar
- Leslie Lamport. "Time, Clocks, and the Ordering of Events in a Distributed System" In Communications of the ACM, Vol. 21, July 1978.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- David E. Lowell and Peter M. Chen. "Free Transactions with Rio Vista". In Symposium on Operating Systems Principles, 1997.Google Scholar
- Y. Lu, J. Shu, L. Sun, and O. Mutlu. "Loose-Ordering Consistency for Persistent Memory" In International Conference on Computer Design, 2014.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
Digital Library
- Dushyanth Narayanan and Orion Hodson. "Whole-System Persistence" In International Conference on Architectural Support for Programming Languages and Operating Systems, 2012.Google Scholar
- Simo Neuvonen, Antoni Wolski, Markku Manner, and Vilho Raatikka. "Telecom Application Transaction Processing Benchmark" http://tatpbenchmark.sourceforge.net/.Google Scholar
- Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. "Memory Persistency" In International Symposium on Computer Architecture, 2014.Google Scholar
- 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.Google Scholar
- Alexander Thomson and Daniel J. Abadi. "The Case for Determinism in Database Systems" In Proceedings of the VLDB Endowment, 2010.Google Scholar
- Transaction Processing Performance Council (TPC). "TPC Benchmark B" http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5--11.pdf.Google Scholar
- 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, 20Google Scholar
- Tianzheng Wang and Ryan Johnson. "Scalable Logging through Emerging Non-Volatile Memory" In Proceedings of the VLDB Endowment, 2014.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- Jishen Zhao, Onur Mutlu, and Yuan Xie. "FIRM: Fair and High-performance Memory Control for Peristent Memory Systems" In International Symposium on Microarchitecure, 2014.Google Scholar
Index Terms
High-Performance Transactions for Persistent Memories
Recommendations
High-Performance Transactions for Persistent Memories
ASPLOS '16: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating SystemsEmerging 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, ...
High-Performance Transactions for Persistent Memories
ASPLOS'16Emerging 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, ...
Failure-Atomic Persistent Memory Updates via JUSTDO Logging
ASPLOS'16Persistent memory invites applications to manipulate persistent data via load and store instructions. Because failures during updates may destroy transient data (e.g., in CPU registers), preserving data integrity in the presence of failures requires ...







Comments