skip to main content
research-article
Public Access

Failure-Atomic Persistent Memory Updates via JUSTDO Logging

Published:25 March 2016Publication History
Skip Abstract Section

Abstract

Persistent 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 failure-atomic bundles of updates. Prior failure atomicity approaches for persistent memory entail overheads due to logging and CPU cache flushing. Persistent caches can eliminate the need for flushing, but conventional logging remains complex and memory intensive. We present the design and implementation of JUSTDO logging, a new failure atomicity mechanism that greatly reduces the memory footprint of logs, simplifies log management, and enables fast parallel recovery following failure. Crash-injection tests confirm that JUSTDO logging preserves application data integrity and performance evaluations show that it improves throughput 3x or more compared with a state-of-the-art alternative for a spectrum of data-intensive algorithms.

References

  1. Sarita V. Adve and Kourosh Gharachorloo. "Shared Memory Consistency Models: A Tutorial." In IEEE Computer, Vol. 29 No. 12, December 1996.Google ScholarGoogle Scholar
  2. Gene M. Amdahl. "Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities." In Spring Joint Computer Conference, 1967.Google ScholarGoogle Scholar
  3. Dmytro Apalkov, Alexey Khvalkovskiy, Steven Watts, Valdimir Nikitin, Xueti Tang, Daniel Lottis, Kiseok Moon, Xiao Luo, Eugene Chen, Adrian Ong, Alexander Driskill-Smith, and Mohamad Krounbi. "Spin-transfer Torque Magnetic Random Access Memory (STT-MRAM)." In Journal on Emerging Technologies in Computing Systems (JETC)--Special issue on memory technologies, 2013.Google ScholarGoogle Scholar
  4. Brian N. Bershad. "Fast Mutual Exclusion for Uniprocessors." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1992.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. Aviv Blattner, Ram Dagan, and Terence Kelly. "Generic Crash-Resilient Storage for Indigo and Beyond." Technical report HPL-2013--75, Hewlett-Packard, 2013. http://www.labs.hp.com/techreports/2013/HPL-2013--75.pdfGoogle ScholarGoogle Scholar
  7. Cristian Cadar, Daniel Dunbar, and Dawson Engler. "KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs." In Symposium on Operating Systems Design and Implementation (OSDI), 2008.Google ScholarGoogle Scholar
  8. Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. "EXE: Automatically Generating Inputs of Death." In Conference on Computer and Communications Security (CCS), 2006.Google ScholarGoogle Scholar
  9. Dhruva R. Chakrabarti, Hans-J. Boehm, and Kumud Bhandari. "Atlas: Leveraging Locks for Non-Volatile Memory Consistency." In International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA), 2014.Google ScholarGoogle Scholar
  10. Peter M. Chen, Wee Teck Ng, Subhachandra Chandra, Christopher 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 (ASPLOS), 1996.Google ScholarGoogle Scholar
  11. Shimin Chen, Phillip B. Gibbons, and Suman Nath. "Rethinking Database Algorithms for Phase Change Memory." In Biennial Conference on Innovative Data Systems Research (CIDR), 2011.Google ScholarGoogle Scholar
  12. David Chisnall, Colin Rothwell, Robert N.M. Watson, Jonathan Woodruff, Munraj Vadera, Simon W. Moore, Michael Roe, Brooks Davis, and Peter G. Neumann. "Beyond the PDP-11: Processor support for a memory-safe C abstract machine." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2015.Google ScholarGoogle Scholar
  13. Joel Coburn, Trevor Bunker, Meir Schwarz, Rajesh Gupta, and Steven Swanson. "From ARIES to MARS: Transaction Support for Next-Generation, Solid-State Drives." In Symposium on Operating Systems Principles (SOSP), 2013.Google ScholarGoogle Scholar
  14. 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 (ASPLOS), 2011.Google ScholarGoogle Scholar
  15. 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 (SOSP), 2009.Google ScholarGoogle Scholar
  16. Intel Corporation. "Intel Architecture Instruction Set Extensions Programming Reference." No. 319433-023, October 2014.Google ScholarGoogle Scholar
  17. Damian Dechev, Peter Pirkelbauer, and Bjarne Stroustrup. "Lock-free Dynamically Resizable Arrays." In International Conference on Principles of Distributed Systems (OPODIS), 2006.Google ScholarGoogle Scholar
  18. 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 (EuroSys), 2014.Google ScholarGoogle Scholar
  19. Patrice Godefroid, Nils Klarlund, and Koushik Sen. "DART: Directed Automated Random Testing." In Conference on Programming Language Design and Implementation (PLDI), 2015.Google ScholarGoogle Scholar
  20. Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. "NVRAM-aware Logging in Transaction Systems." In Proceedings of the VLDB Endowment, 2014.Google ScholarGoogle Scholar
  21. Marc de Krujf and Karthikeyan Sankaralingam. "Idempotent Processor Architecture." In International Symposium on Microarchitecture (MICRO), 2011.Google ScholarGoogle Scholar
  22. Emre Kultursay, Mahmut Kandemir, Anand Sivasubramaniam, and Onur Mutlu. "Evaluating STT-RAM as an Energy-Efficient Main Memory Alternative." In International Symposium on Performance Analysis of Systems and Software (ISPASS), 2013.Google ScholarGoogle Scholar
  23. 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 (ISCA), 2009.Google ScholarGoogle Scholar
  24. 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 (FAST), 2013.Google ScholarGoogle Scholar
  25. Hyeontaek Lim, Dongsu Han, David G. Andersen, and Michael Kaminsky. "MICA: A Holistic Approach to Fast In-Memory Key-value Storage." In Conference on Networked Systems Design and Implementation (NSDI), 2014.Google ScholarGoogle Scholar
  26. Raymond Lo, Fred Chow, Robert Kennedy, Shin-Ming Liu, and Peng Tu. "Register Promotion by Sparse Partial Redundancy Elimination of Loads and Stores." In Conference on Programming Language Design and Implementation (PLDI), 1998.Google ScholarGoogle Scholar
  27. David E. Lowell and Peter M. Chen. "Free transactions with Rio Vista." In Symposium on Operating Systems Principles (SOSP), 1997.Google ScholarGoogle Scholar
  28. Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. "Loose-Ordering Consistency for Persistent Memory." In International Conference on Computer Design (ICCD), 2014.Google ScholarGoogle Scholar
  29. Maged M. Michael and Michael L. Scott. "Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms." In Symposium on Principles of Distributed Computing (PODC), 1996.Google ScholarGoogle Scholar
  30. Microsoft Developer Network. "Alternative to using Transactional NTFS." http://msdn.microsoft.com/en-us/library/hh802690.aspx, Accessed 17 September 2014.Google ScholarGoogle Scholar
  31. 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, March 1992.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Dushyanth Narayan and Orion Hodson. "Whole-System Persistence." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2012.Google ScholarGoogle Scholar
  33. Faisal Nawab, Dhruva R. Chakrabarti, Terence Kelly, and Charles B. Morrey III. "Procrastination Beats Prevention: Timely Sufficient Persistence for Efficient Crash Resilience." In International Conference on Extending Database Technology (EDBT), 2015. http://openproceedings.org/2015/conf/edbt/paper-336.pdfGoogle ScholarGoogle Scholar
  34. Faisal Nawab, Dhruva R. Chakrabarti. Terence Kelly, and Charles B. Morrey III "Zero-Overhead NVM Crash Resilience." In Non-Volatile Memories Workshop (NVMW), 2015. http://nvmw.ucsd.edu/2015/assets/abstracts/41Google ScholarGoogle Scholar
  35. Micheal A. Olson, Keith Bostic, and Margo Seltzer. "Berkeley DB." In USENIX Annual Technical Conference (FREENIX track), 1999.Google ScholarGoogle Scholar
  36. Stan Park, Terence Kelly, and Kai Shen. "Failure-Atomictextttmsync(): A Simple and Efficient Mechanism for Preserving the Integrity of Durable Data." In European Conference on Computer Systems (EuroSys), 2013. http://doi.acm.org/10.1145/2465351.2465374Google ScholarGoogle Scholar
  37. Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. "Memory Persistency." In International Symposium on Computer Architecture (ISCA), 2014. http://dl.acm.org/citation.cfm?id=2665671.2665712Google ScholarGoogle Scholar
  38. "Persistent Memory Programming." http://pmem.io/, Accessed 12 August 2015.Google ScholarGoogle Scholar
  39. Donald E. Porter, Owen S. Hofmann, Christopher J. Rossbach, Alexander Benn, and Emmett Witchel. "Operating System Transactions." In Symposium on Operating Systems Principles (SOSP), 2009.Google ScholarGoogle Scholar
  40. Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. "Scalable High Performance Main Memory System Using Phase-change Memory Technology." In International Symposium on Computer Architecture (ISCA), 2009.Google ScholarGoogle Scholar
  41. Andy Rudoff. "In a World with Persistent Memory." In Non-Volatile Memories Workshop (NVMW), 2015.Google ScholarGoogle Scholar
  42. Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur, and Gernot Heiser. "Automatic Device Driver Synthesis with Termite." In Symposium on Operating Systems Principles (SOSP), 2009.Google ScholarGoogle Scholar
  43. A.V.S. Sastry and Roy D.C. Ju. "A New Algorithm for Scalar Register Promotion Based on SSA Form." In Conference on Programming Language Design and Implementation (PLDI), 1998.Google ScholarGoogle Scholar
  44. Russell Sears and Eric Brewer. "Stasis: Flexible Transactional Storage." In Symposium on Operating Systems Design and Implementation (SOSP), 2006.Google ScholarGoogle Scholar
  45. SQLite http://www.sqlite.org/, Accessed 15 January 2016.Google ScholarGoogle Scholar
  46. "Storage Networking Industry Association (SNIA) Non-Volatile Memory Programming Model." http://www.snia.org/tech_activities/standards/curr_standards/npm, Accessed 10 January 2016.Google ScholarGoogle Scholar
  47. Richard P. Spillane, Sachin Gaikwad, Manjunath Chinni, Erez Zadok, and Charles P. Wright. "Enabling Transactional File Access via Lightweight Kernel Extensions." In Conference on File and Storage Technologies (FAST), 2009.Google ScholarGoogle Scholar
  48. Dmitri B. Strukov, Gregory S. Snider, Duncan R. Stewart, and R. Stanley Williams. "The missing memristor found." In Nature, Vol. 453 No. 7191, May 2008.Google ScholarGoogle Scholar
  49. R. Kent Treiber. "Systems Programming: Coping with Parallelism." Technical Report RJ 5118, IBM Almaden Research Center, 1986.Google ScholarGoogle Scholar
  50. Rajat Verma, Anton Ajay Mendez, Stan Park, Sandya Mannarswamy, Terence Kelly, and Charles B. Morrey III. "Failure-Atomic Updates of Application Data in a Linux File System." In Conference on File and Storage Technologies (FAST), 2015. https://www.usenix.org/system/files/conference/fast15/fast15-paper-verma.pdfGoogle ScholarGoogle Scholar
  51. Viking Technology. "NVDIMM Technology: ArxCis-NV." http://www.vikingtechnology.com/nvdimm-technology, Accessed 10 August 2015.Google ScholarGoogle Scholar
  52. Haris Volos, Andres Jaan Tack, and Micheal M. Swift. "Mnemosyne: Lightweight Persistent Memory." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2011.Google ScholarGoogle Scholar
  53. Tianzheng Wang and Ryan Johnson. "Scalable Logging through Emerging Non-Volatile Memory." In Proceedings of the VLDB Endowment, 2014.Google ScholarGoogle Scholar
  54. Jonathan Woodruff, Robert N. M. Watson, David Chisnall, Simon W. Moore, Jonathan Anderson, Brooks Davis, Ben Laurie, Peter G. Neumann, Robert Norton, and Michael Roe. "The CHERI capability model: Revisiting RISC in an age of risk." In International Symposium on Computer Architecture (ISCA), 2014.%Google ScholarGoogle Scholar
  55. Micheal Wu and Willy Zwaenepoel. "eNVy: A Non-Volatile, Main Memory Storage System." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1994.Google ScholarGoogle Scholar
  56. Cong Xu, Dimin Niu, Naveen Muralimanohar, Rajeev Balasubramonian, Tao Zhang, Shimeng Yu, and Yuan Xie. "Overcoming the challenges of crossbar resistive memory architectures." In Symposium on High Performance Computer Architecture (HPCA), 2015.Google ScholarGoogle Scholar
  57. "Yahoo! Cloud Serving Benchmark (YCSB)." https://github.com/brianfrankcooper/YCSB/wiki, Accessed 4 August 2015.Google ScholarGoogle Scholar
  58. Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, Khai Leong Yong, and Bingsheng He. "NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems." In Conference on File and Storage Technologies (FAST), 2015.Google ScholarGoogle Scholar
  59. Sunghwan Yoo, Charles Killian, Terence Kelly, Hyoun Kyu Cho, and Steven Plite. "Composable Reliability for Asynchronous Systems." In USENIX Annual Technical Conference (ATC), 2012. https://www.usenix.org/system/files/conference/atc12/atc12-final206--7--20--12.pdfGoogle ScholarGoogle Scholar
  60. Anna Zaks and Rajeev Joshi. "Verifying Multi-threaded C Programs with SPIN." Model Checking Software. Springer Berlin Heidelberg, 2008.Google ScholarGoogle Scholar
  61. Jishen Zhao, Sheng Li, Doe Hyun Lee, Yuan Xie, and Norman P. Jouppi. "Kiln: Closing the Performance Gap Between Systems With and Without Persistence Support." In International Symposium on Microarchitecture (MICRO), 2013.Google ScholarGoogle Scholar

Index Terms

  1. Failure-Atomic Persistent Memory Updates via JUSTDO Logging

    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

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 51, Issue 4
      ASPLOS '16
      April 2016
      774 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2954679
      • Editor:
      • Andy Gill
      Issue’s Table of Contents
      • 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

      Copyright © 2016 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 25 March 2016

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!