Abstract
Persistent memory provides data durability in main memory and enables memory-level storage systems. To ensure consistency of such storage systems, memory writes need to be transactional and are carefully moved across the boundary between the volatile CPU cache and the persistent main memory. Unfortunately, cache management in the CPU cache is hardware-controlled. Legacy transaction mechanisms, which are designed for disk-based storage systems, are inefficient in ordered data persistence of transactions in persistent memory. In this article, we propose the Blurred Persistence mechanism to reduce the transaction overhead of persistent memory by blurring the volatility-persistence boundary. Blurred Persistence consists of two techniques. First, Execution in Log executes a transaction in the log to eliminate duplicated data copies for execution. It allows persistence of the volatile uncommitted data, which are detectable with reorganized log structure. Second, Volatile Checkpoint with Bulk Persistence allows the committed data to aggressively stay volatile by leveraging the data durability in the log, as long as the commit order across threads is kept. By doing so, it reduces the frequency of forced persistence and improves cache efficiency. Evaluations show that our mechanism improves system performance by 56.3% to 143.7% for a variety of workloads.
- AMD. 2011. AMD64 Architecture Programmer’s Manual Volume 3: General Purpose and System Instructions.Google Scholar
- Vijay Chidambaram, Tushar Sharma, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2012. Consistency without ordering. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST). USENIX, Berkeley, CA. Google ScholarDigital Library
- Joel Coburn, Trevor Bunker, Meir Schwarz, Rajesh Gupta, and Steven Swanson. 2013. From ARIES to MARS: Transaction support for next-generation, solid-state drives. In Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY, 197--212. Google ScholarDigital Library
- Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). ACM, New York, NY, 105--118. Google ScholarDigital Library
- Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the 22nd ACM SIGOPS Symposium on Operating Systems Principles (SOSP). ACM, New York, NY, 133--146. Google ScholarDigital Library
- Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the 9th European Conference on Computer Systems (EuroSys). ACM, New York, NY, Article 15, 15 pages. Google ScholarDigital Library
- Pascal Felber, Christof Fetzer, and Torvald Riegel. 2008. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP). ACM, New York, NY, 237--246. Google ScholarDigital Library
- Christopher Frost, Mike Mammarella, Eddie Kohler, Andrew de los Reyes, Shant Hovsepian, Andrew Matsuoka, and Lei Zhang. 2007. Generalized file system dependencies. In Proceedings of the 21st ACM SIGOPS Symposium on Operating Systems Principles (SOSP). ACM, New York, NY, 307--320. Google ScholarDigital Library
- Jim Gray, Paul McJones, Mike Blasgen, Bruce Lindsay, Raymond Lorie, Tom Price, Franco Putzolu, and Irving Traiger. 1981. The recovery manager of the system R database manager. Computing Surveys (1981). Google ScholarDigital Library
- Jorge Guerra, Leonardo Marmol, Daniel Campello, Carlos Crespo, Raju Rangaswami, and Jinpeng Wei. 2012. Software persistent memory. In Proceedings of the 2012 USENIX Annual Technical Conference (USENIX ATC). USENIX, Boston, MA, 319--331. Google ScholarDigital Library
- Tim Harris, Jim Larus, and Ravi Rajwar. 2010. Transactional Memory (Synthesis Lectures on Computer Architecture) (2nd ed.). Morgan & Claypool, San Francisco, CA. Google ScholarDigital Library
- Maurice Herlihy and J. Eliot B. Moss. 1993. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture (ISCA). ACM, New York, NY, 289--300. Google ScholarDigital Library
- Intel. 2013. Intel architecture instruction set extensions programming reference, 319433-015.Google Scholar
- Intel. 2014. Intel© C++ STM Compiler, Prototype Edition. Retrieved December 15, 2015 from https://software.intel.com/en-us/articles/intel-c-stm-compiler-prototype-edition.Google Scholar
- Emre Kultursay, Mahmut Kandemir, Anand Sivasubramaniam, and Onur Mutlu. 2013. Evaluating STT-RAM as an energy-efficient main memory alternative. In Proceedings of 2013 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). IEEE, 256--267.Google ScholarCross Ref
- FAL Lab. 2014. Tokyo Cabinet: A modern implementation of DBM. Retrieved December 15, 2015 http://fallabs.com/tokyocabinet/.Google Scholar
- Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable dram alternative. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA). ACM, New York, NY, 2--13. Google ScholarDigital Library
- Eunji Lee, Hyokyung Bahn, and Sam H. Noh. 2013. Unioning of the buffer cache and journaling layers with non-volatile memory. In Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST). USENIX, Berkeley, CA. Google ScholarDigital Library
- David E. Lowell and Peter M. Chen. 1997. Free transactions with Rio Vista. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY, 92--101. Google ScholarDigital Library
- Youyou Lu, Jiwu Shu, Jia Guo, Shuai Li, and Onur Mutlu. 2013a. LightTx: A lightweight transactional design in Flash-based SSDs to support flexible transactions. In Proceedings of the IEEE 31st International Conference on Computer Design (ICCD). IEEE, 115--122.Google ScholarCross Ref
- Youyou Lu, Jiwu Shu, Jia Guo, Shuai Li, and Onur Mutlu. 2015a. High-performance and lightweight transaction support in flash-based SSDs. IEEE Transactions on Computers 64, 10, 2819--2832.Google ScholarDigital Library
- Youyou Lu, Jiwu Shu, Jia Guo, and Peng Zhu. 2015b. Supporting system consistency with differential transactions in flash-based SSDs. IEEE Transactions on Computers (2015). DOI:http://dx.doi.org/10.1109/ TC.2015.2419664 to appear.Google Scholar
- Youyou Lu, Jiwu Shu, and Long Sun. 2015c. Blurred persistence in transactional persistent memory. In Proceedings of the 31st Conference on Massive Storage Systems and Technologies (MSST). IEEE, 1--13.Google ScholarCross Ref
- Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. 2014a. Loose-ordering consistency for persistent memory. In Proceedings of the IEEE 32nd International Conference on Computer Design (ICCD). IEEE.Google ScholarCross Ref
- Youyou Lu, Jiwu Shu, and Wei Wang. 2014b. ReconFS: A reconstructable file system on flash storage. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST). USENIX, Berkeley, CA, 75--88. Google ScholarDigital Library
- Youyou Lu, Jiwu Shu, and Weimin Zheng. 2013b. Extending the lifetime of flash-based storage through reducing write amplification from file systems. In Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST). USENIX, Berkeley, CA. Google ScholarDigital Library
- Youyou Lu, Jiwu Shu, and Peng Zhu. 2014c. TxCache: Transactional cache using byte-addressable non-volatile memories in SSDs. In Proceedings of the 3rd IEEE Nonvolatile Memory Systems and Applications Symposium (NVMSA). IEEE.Google ScholarCross Ref
- Justin Meza, Yixin Luo, Samira Khan, Jishen Zhao, Yuan Xie, and Onur Mutlu. 2013. A case for efficient hardware/software cooperative management of storage and memory. In Proceedings of 5th Workshop on Energy Efficient Design.Google Scholar
- C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, and Peter Schwarz. 1992. ARIES: A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Transactions on Database Systems. Google ScholarDigital Library
- Iulian Moraru, David G. Andersen, Michael Kaminsky, Nathan Binkert, Niraj Tolia, Reinhard Munz, and Parthasarathy Ranganathan. 2011. Persistent, Protected and Cached: Building Blocks for Main Memory Data Stores. Technical Report CMU-PDL-11-114v2. Parallel Data Laboratory, Carnegie Mellon University, Pittsburgh, PA.Google Scholar
- Dushyanth Narayanan and Orion Hodson. 2012. Whole-system persistence. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). ACM, New York, NY, 401--410. Google ScholarDigital Library
- Edmund B. Nightingale, Kaushik Veeraraghavan, Peter M. Chen, and Jason Flinn. 2006. Rethink the sync. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI). USENIX, Berkeley, CA, 1--14. Google ScholarDigital Library
- Xiangyong Ouyang, David Nellans, Robert Wipfel, David Flynn, and Dhabaleswar K. Panda. 2011. Beyond block I/O: Rethinking traditional storage primitives. In Proceedings of the 17th IEEE International Symposium on High Performance Computer Architecture (HPCA). IEEE, 301--311. Google ScholarDigital Library
- Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory persistency. In Proceedings of the 41st ACM/IEEE International Symposium on Computer Architecture (ISCA). 265--276. Google ScholarDigital Library
- Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2005. IRON file systems. In Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY, 206--220. Google ScholarDigital Library
- Vijayan Prabhakaran, Thomas L. Rodeheffer, and Lidong Zhou. 2008. Transactional flash. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI). USENIX, Berkeley, CA, 147--160. Google ScholarDigital Library
- Moinuddin K. Qureshi, Sudhanva Gurumurthi, and Bipin Rajendran. 2011. Phase change memory: From devices to systems. Synthesis Lectures on Computer Architecture 6, 4, 1--134. Google ScholarCross Ref
- Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA). ACM, New York, NY, 24--33. Google ScholarDigital Library
- Raghu Ramakrishnan and Johannes Gehrke. 2000. Database Management Systems. Osborne/McGraw-Hill, New York, NY. Google ScholarDigital Library
- M. Satyanarayanan, Henry H. Mashburn, Puneet Kumar, David C. Steere, and James J. Kistler. 1994. Lightweight recoverable virtual memory. ACM Transactions on Computer Systems 12, 1, 33--57. Google ScholarDigital Library
- Margo I. Seltzer, Gregory R. Ganger, Marshall K. McKusick, Keith A. Smith, Craig A. N. Soules, and Christopher A. Stein. 2000. Journaling versus soft updates: Asynchronous meta-data protection in file systems. In Proceedings of 2000 USENIX Annual Technical Conference. USENIX, Berkeley, CA, 71--84. Google ScholarDigital Library
- Long Sun, Youyou Lu, and Jiwu Shu. 2015. DP2: Reducing transaction overhead with differential and dual persistency in persistent memory. In Proceedings of the ACM International Conference on Computing Frontiers (CF). ACM, New York, NY. Google ScholarDigital Library
- Stephen C. Tweedie. 1998. Journaling the Linux ext2fs filesystem. In The Fourth Annual Linux Expo.Google Scholar
- Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, Roy H. Campbell, and others. 2011. Consistent and durable data structures for non-volatile byte-addressable memory. In Proceedings of the 9th USENIX Conference on File and Storage Technologies (FAST). USENIX, Berkeley, CA, 61--75. Google ScholarDigital Library
- Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). ACM, New York, NY, 91--104. Google ScholarDigital Library
- Z. Wang, H. Yi, R. Liu, M. Dong, and H. Chen. 2014. Persistent transactional memory. Computer Architecture Letters (2014).Google Scholar
- Wikipedia. (2015) NVDIMM. Retrieved December 15, 2015 from http://en.wikipedia.org/wiki/NVDIMM.Google Scholar
- Xiaojian Wu and A. L. Narasimha Reddy. 2011. SCMFS: A file system for storage class memory. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC). ACM, New York, NY, Article 39, 11 pages. Google ScholarDigital Library
- Jishen Zhao, Sheng Li, Doe Hyun Yoon, Yuan Xie, and Norman P. Jouppi. 2013. Kiln: closing the performance gap between systems with and without persistence support. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). ACM, New York, NY, 421--432. Google ScholarDigital Library
- Ping Zhou, Bo Zhao, Jun Yang, and Youtao Zhang. 2009. A durable and energy efficient main memory using phase change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA). ACM, New York, NY, 14--23. Google ScholarDigital Library
Recommendations
Mnemosyne: lightweight persistent memory
ASPLOS '11New storage-class memory (SCM) technologies, such as phase-change memory, STT-RAM, and memristors, promise user-level access to non-volatile storage through regular memory instructions. These memory devices enable fast user-mode access to persistence, ...
Mnemosyne: lightweight persistent memory
ASPLOS '11New storage-class memory (SCM) technologies, such as phase-change memory, STT-RAM, and memristors, promise user-level access to non-volatile storage through regular memory instructions. These memory devices enable fast user-mode access to persistence, ...
Mnemosyne: lightweight persistent memory
ASPLOS XVI: Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systemsNew storage-class memory (SCM) technologies, such as phase-change memory, STT-RAM, and memristors, promise user-level access to non-volatile storage through regular memory instructions. These memory devices enable fast user-mode access to persistence, ...
Comments