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.
- Sarita V. Adve and Kourosh Gharachorloo. "Shared Memory Consistency Models: A Tutorial." In IEEE Computer, Vol. 29 No. 12, December 1996.Google Scholar
- Gene M. Amdahl. "Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities." In Spring Joint Computer Conference, 1967.Google Scholar
- 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 Scholar
- Brian N. Bershad. "Fast Mutual Exclusion for Uniprocessors." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1992.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
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 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 (ASPLOS), 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 (SOSP), 2009.Google Scholar
- Intel Corporation. "Intel Architecture Instruction Set Extensions Programming Reference." No. 319433-023, October 2014.Google Scholar
- Damian Dechev, Peter Pirkelbauer, and Bjarne Stroustrup. "Lock-free Dynamically Resizable Arrays." In International Conference on Principles of Distributed Systems (OPODIS), 2006.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 (EuroSys), 2014.Google Scholar
- Patrice Godefroid, Nils Klarlund, and Koushik Sen. "DART: Directed Automated Random Testing." In Conference on Programming Language Design and Implementation (PLDI), 2015.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
- Marc de Krujf and Karthikeyan Sankaralingam. "Idempotent Processor Architecture." In International Symposium on Microarchitecture (MICRO), 2011.Google Scholar
- 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 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 (ISCA), 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 (FAST), 2013.Google Scholar
- 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 Scholar
- 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 Scholar
- David E. Lowell and Peter M. Chen. "Free transactions with Rio Vista." In Symposium on Operating Systems Principles (SOSP), 1997.Google Scholar
- Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. "Loose-Ordering Consistency for Persistent Memory." In International Conference on Computer Design (ICCD), 2014.Google Scholar
- 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 Scholar
- Microsoft Developer Network. "Alternative to using Transactional NTFS." http://msdn.microsoft.com/en-us/library/hh802690.aspx, Accessed 17 September 2014.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, March 1992.Google Scholar
Digital Library
- Dushyanth Narayan and Orion Hodson. "Whole-System Persistence." In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2012.Google Scholar
- 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 Scholar
- 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 Scholar
- Micheal A. Olson, Keith Bostic, and Margo Seltzer. "Berkeley DB." In USENIX Annual Technical Conference (FREENIX track), 1999.Google Scholar
- 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 Scholar
- 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 Scholar
- "Persistent Memory Programming." http://pmem.io/, Accessed 12 August 2015.Google Scholar
- 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 Scholar
- 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 Scholar
- Andy Rudoff. "In a World with Persistent Memory." In Non-Volatile Memories Workshop (NVMW), 2015.Google Scholar
- 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 Scholar
- 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 Scholar
- Russell Sears and Eric Brewer. "Stasis: Flexible Transactional Storage." In Symposium on Operating Systems Design and Implementation (SOSP), 2006.Google Scholar
- SQLite http://www.sqlite.org/, Accessed 15 January 2016.Google Scholar
- "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 Scholar
- 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 Scholar
- 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 Scholar
- R. Kent Treiber. "Systems Programming: Coping with Parallelism." Technical Report RJ 5118, IBM Almaden Research Center, 1986.Google Scholar
- 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 Scholar
- Viking Technology. "NVDIMM Technology: ArxCis-NV." http://www.vikingtechnology.com/nvdimm-technology, Accessed 10 August 2015.Google Scholar
- 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 Scholar
- Tianzheng Wang and Ryan Johnson. "Scalable Logging through Emerging Non-Volatile Memory." In Proceedings of the VLDB Endowment, 2014.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- "Yahoo! Cloud Serving Benchmark (YCSB)." https://github.com/brianfrankcooper/YCSB/wiki, Accessed 4 August 2015.Google Scholar
- 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 Scholar
- 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 Scholar
- Anna Zaks and Rajeev Joshi. "Verifying Multi-threaded C Programs with SPIN." Model Checking Software. Springer Berlin Heidelberg, 2008.Google Scholar
- 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 Scholar
Index Terms
Failure-Atomic Persistent Memory Updates via JUSTDO Logging
Recommendations
Failure-Atomic Persistent Memory Updates via JUSTDO Logging
ASPLOS '16: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating SystemsPersistent 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 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 ...
CCHL: Compression-Consolidation Hardware Logging for Efficient Failure-Atomic Persistent Memory Updates
ICPP '20: Proceedings of the 49th International Conference on Parallel ProcessingNon-volatile memory (NVM) is emerging as a fast byte-addressable persistent memory (PM) that promises data persistence at the main memory level. One of the common choices for providing failure-atomic updates in PM is the write-ahead logging (WAL) ...







Comments