skip to main content
10.1145/3211890.3211898acmconferencesArticle/Chapter ViewAbstractPublication PagessystorConference Proceedingsconference-collections
research-article

Dependable Non-Volatile Memory

Published: 04 June 2018 Publication History

Abstract

Recent advances in persistent memory (PM) enable fast, byte-addressable main memory that maintains its state across power cycling events. To survive power outages and prevent inconsistent application state, current approaches introduce persistent logs and require expensive cache flushes. Thus, these solutions cause a performance penalty of up to 10x for write operations on PM. With respect to wear-out effects, and a significantly lower write performance compared to read operations, we identify this as a major flaw that impacts performance and lifetime of PM. In addition, most PM technologies are susceptible to soft-errors that cause corrupted data, which implies a high risk of a permanently inconsistent system state.
In this paper, we present DNV Memory, a library for persistent memory management. For securing allocated data against power outages, multi-bit faults that bypass hardware protection and even usage violations, DNV Memory introduces reliable transactions. Additionally, it reduces writes to PM by offloading logging operations to volatile memory, while maintaining durability on demand by an early detection of upcoming power failures. We compare DNV Memory to pmemobj, a persistent object-store, and show that our system only causes a moderate overhead. In fact, our benchmark results indicate that DNV Memory is even faster than pmemobj for transactions of moderate size.

References

[1]
2005. ATX12V Power Supply Design Guide. (2005). http://formfactors.org/developer%5Cspecs%5CATX12V_PSDG_2_2_public_br2.pdf
[2]
2012. Viking Technology. ArxCis-NV (TM) Non-Volatile Memory Technology. http://www.vikingmodular.com/products/arxcis/arxcis.html. (2012).
[3]
2014. SNIA NVDIMM Messaging and FAQ. (2014).
[4]
2016. Advanced Configuration and Power Interface Specification (Version 6.1). http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdf. (2016).
[5]
2016. Intel 64 and IA-32 Architectures Software Developer's Manual. (2016).
[6]
Joy Arulraj, Andrew Pavlo, and Subramanya R. Dulloor. 2015. Let's Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (SIGMOD '15). ACM, New York, NY, USA, 707--722.
[7]
Manu Awasthi, Manjunath Shevgoor, Kshitij Sudan, Bipin Rajendran, Rajeev Balasubramonian, and Viii Srinivasan. 2012. Efficient Scrub Mechanisms for Error-prone Emerging Memories. In Proceedings of the 2012 IEEE 18th International Symposium on High-Performance Computer Architecture (HPCA '12). IEEE Computer Society, Washington, DC, USA, 1--12.
[8]
D. Behrens, S. Weigert, and C. Fetzer. 2013. Automatically Tolerating Arbitrary Faults in Non-malicious Settings. In Proc. of the Latin-American Symp. on Dependable Comp.
[9]
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R. Wilson. 2000. Hoard: A Scalable Memory Allocator for Multithreaded Applications. In Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).
[10]
Kumud Bhandari, Dhruva R. Chakrabarti, and Hans-J. Boehm. 2016. Makalu: Fast Recoverable Allocation of Non-volatile Memory. In Proc. of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA).
[11]
Christoph Borchert, Horst Schirmeier, and Olaf Spinczyk. {n. d.}. Generic Soft-Error Detection and Correction for Concurrent Data Structures. IEEE Transactions on Dependable and Secure Computing PP, 99 ({n.d.}).
[12]
Björn Cassens, Arthur Martens, and Rüdiger Kapitza. 2016. The Neverending Runtime: Using new Technologies for Ultra-Low Power Applications with an Unlimited Runtime. (2016). http://www.ewsn.org/file-repository/ewsn2016/325_330_cassens.pdf?attredirects=0
[13]
Dhruva R. Chakrabarti, Hans-J. Boehm, and Kumud Bhandari. 2014. Atlas: Leveraging Locks for Non-volatile Memory Consistency. In Proc. of the International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA '14).
[14]
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, nonvolatile memories. In ACM SIGARCH Comp. Arch. News.
[15]
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 ACM SIGOPS 22Nd Symposium on Operating Systems Principles (SOSP '09). ACM, New York, NY, USA, 133--146.
[16]
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 Proc. of the Symposium on Operating Systems Principles.
[17]
Miguel Correia, Daniel Gómez Ferro, Flavio P Junqueira, and Marco Serafini. 2012. Practical hardening of crash-tolerant systems. In Proc. of the 2012 USENIX Annual Technical Conf., Vol. 12.
[18]
Alex Depoutovitch and Michael Stumm. 2010. Otherworld: giving applications a chance to survive OS kernel crashes. In Proc. of the European conference on Computer systems (EuroSys).
[19]
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 Ninth European Conference on Computer Systems (EuroSys '14). ACM, New York, NY, USA, Article 15, 15 pages.
[20]
Subramanya R Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proc. of the European Conference on Computer Systems (EuroSys).
[21]
Jason Evans. 2006. A scalable concurrent malloc (3) implementation for FreeBSD. In Proc. of the BSDCan Conference, Ottawa, Canada.
[22]
Pascal Felber, Christof Fetzer, and Torvald Riegel. 2008. Dynamic Performance Tuning of Word-Based Software Transactional Memory. In Proc. of Symposium on Principles and Practice of Parallel Programming (PPoPP).
[23]
Pascal Felber, Christof Fetzer, Torvald Riegel, and Patrick Marlier. 2010. Time-Based Software Transactional Memory. IEEE Transactions on Parallel and Distributed Systems 21 (2010).
[24]
Gernot Heiser, Etienne Le Sueur, Adrian Danis, Aleksander Budzynowski, Tudor-loan Salomie, and Gustavo Alonso. 2013. Rapi-Log: Reducing System Complexity Through Verification. In Proc. of the European Conference on Computer Systems (EuroSys).
[25]
Sudarsun Kannan, Ada Gavrilovska, and Karsten Schwan. 2016. pVM: Persistent Virtual Memory for Efficient Capacity Scaling and Object Storage. In Proceedings of the Eleventh European Conference on Computer Systems (EuroSys '16). ACM, New York, NY, USA, Article 13, 16 pages.
[26]
P. Koopman. 2002. 32-bit cyclic redundancy codes for Internet applications. In Proc. of Dependable Systems and Networks (DSN).
[27]
Dmitrii Kuvaiskii, Rasha Faqeh, Pramod Bhatotia, Pascal Felber, and Christof Fetzer. 2016. HAFT: Hardware-assisted Fault Tolerance. In Proc. of the European Conference on Computer Systems (EuroSys).
[28]
Xu Li, Kai Lu, Xiaoping Wang, and Xu Zhou. 2012. NV-process: A Fault-tolerance Process Model Based on Non-volatile Memory. In Proc. of the Asia-Pacific Conference on Systems (APSys '12).
[29]
Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. 2008. STAMP: Stanford transactional applications for multiprocessing. In Proc. of the International Symposium on Workload Characterization (IISWC).
[30]
Sanketh Nalli, Swapnil Haria, Mark D. Hill, Michael M. Swift, Haris Volos, and Kimberly Keeton. 2017. An Analysis of Persistent Memory Use with WHISPER. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems.
[31]
Dushyanth Narayanan and Orion Hodson. 2012. Whole-system persistence. In ACM SIGARCH Computer Architecture News, Vol. 40.
[32]
Karthik Pattabiraman, Vinod Grover, and Benjamin G. Zorn. 2008. Samurai: Protecting Critical Data in Unsafe Languages. In Proc. of European Conference on Computer Systems (EuroSys).
[33]
David A Patterson, Garth Gibson, and Randy H Katz. 1988. A case for redundant arrays of inexpensive disks (RAID). Vol. 17. ACM.
[34]
Philips Semiconductors {n. d.}. Protecting Microcontrollers against Power Supply Imperfections. Philips Semiconductors. AN468, published in May 2001.
[35]
Moinuddin K Qureshi. 2011. Pay-As-You-Go: low-overhead hard-error correction for phase change memories. In Microarchitecture (MICRO), 2011 44th Annual IEEE/ACM International Symposium on. IEEE, 318--328.
[36]
V. A. Sartakov, A. Martens, and R. Kapitza. 2015. Temporality a NVRAM-based Virtualization Platform. In Proc. of the Symposium on Reliable Distributed Systems (SRDS).
[37]
Stuart Schechter, Gabriel H. Loh, Karin Strauss, and Doug Burger. 2010. Use ECP, Not ECC, for Hard Failures in Resistive Memories. In Proceedings of the 37th Annual International Symposium on Computer Architecture (ISCA '10). ACM, New York, NY, USA, 141--152.
[38]
Nak Hee Seong, Dong Hyuk Woo, Vijayalakshmi Srinivasan, Jude A. Rivers, and Hsien-Hsin S. Lee. 2010. SAFER: Stuck-At-Fault Error Recovery for Memories. In Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO '43). IEEE Computer Society, Washington, DC, USA, 115--124.
[39]
Manjunath Shevgoor, Naveen Muralimanohar, Rajeev Balasubramonian, and Yoocharn Jeon. 2015. Improving memristor memory with sneak current sharing. In Computer Design (ICCD), 2015 33rd IEEE International Conference on. IEEE, 549--556.
[40]
SNIA. 2015. NVM Programming Model. (2015). http://www.snia.org/tech_activities/standards/curr_standards/npm
[41]
Vilas Sridharan, Nathan DeBardeleben, Sean Blanchard, Kurt B. Ferreira, Jon Stearley John Shalf, and Sudhanva Gurumurthi. 2015. Memory Errors in Modern Systems: The Good, The Bad, and The Ugly. In Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).
[42]
Vilas Sridharan and Dean Liberty. 2012. A Study of DRAM Failures in the Field. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (SC '12). IEEE Computer Society Press, Los Alamitos, CA, USA, Article 76, 11 pages. http://dl.acm.org/citation.cfm?id=2388996.2389100
[43]
V Sridharan and D. Liberty. 2012. A study of DRAM failures in the field. In Proc. of High Performance Computing, Networking, Storage and Analysis (SC).
[44]
PMDK team at Intel Corporation. {n. d.}. NVM Library. ({n. d.}). http://pmem.io/nvml/
[45]
Haris Volos, Sanketh Nalli, Sankarlingam Panneerselvam, Venkatanathan Varadarajan, Prashant Saxena, and Michael M Swift. 2014. Aerie: flexible file-system interfaces to storage-class memory. In Proc. of the European Conference on Computer Systems (EuroSys).
[46]
Haris Volos, Andres Jaan Tack, and Michael M Swift. 2011. Mnemosyne: Lightweight persistent memory. In ACM SIGARCH Computer Architecture News, Vol. 39.
[47]
Hu Wan, Youyou Lu, Yuanchao Xu, and Jiwu Shu. 2016. Empirical study of redo and undo logging in persistent memory. In Proc. of Non-Volatile Memory Systems and Applications Symposium (NVMSA).
[48]
Rujia Wang, Youtao Zhang, and Jun Yang. 2016. ReadDuo: Constructing Reliable MLC Phase Change Memory through Fast and Robust Readout. In Dependable Systems and Networks (DSN), 2016 46th Annual IEEE/IFIP International Conference on. IEEE, 203--214.
[49]
Xiaojian Wu and AL Reddy. 2011. SCMFS: a file system for storage class memory. In Proc. of High Performance Computing, Networking, Storage and Analysis.
[50]
Doe Hyun Yoon, Naveen Muralimanohar, Jichuan Chang, Parthasarathy Ranganathan, Norman P Jouppi, and Mattan Erez. 2011. FREE-p: Protecting non-volatile memory against both hard and soft errors. In High Performance Computer Architecture (HPCA), 2011 IEEE 17th International Symposium on. IEEE, 466--477.

Cited By

View all
  • (2022)Computer simulation of radiation effects on high-speed non-volatile memoryModeling of systems and processes10.12737/2219-0767-2022-15-3-93-10215:3(93-102)Online publication date: 5-Oct-2022
  • (2020)Polymorphic Compressed Replication of Columnar Data in Scale-Up Hybrid Memory SystemsProceedings of the 13th ACM International Systems and Storage Conference on ZZZ10.1145/3383669.3398283(98-110)Online publication date: 30-May-2020
  • (2020)Dependability Aspects in Configurable Embedded Operating SystemsDependable Embedded Systems10.1007/978-3-030-52017-5_4(85-116)Online publication date: 10-Dec-2020

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SYSTOR '18: Proceedings of the 11th ACM International Systems and Storage Conference
June 2018
144 pages
ISBN:9781450358491
DOI:10.1145/3211890
Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 June 2018

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

SYSTOR '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 108 of 323 submissions, 33%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)26
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Computer simulation of radiation effects on high-speed non-volatile memoryModeling of systems and processes10.12737/2219-0767-2022-15-3-93-10215:3(93-102)Online publication date: 5-Oct-2022
  • (2020)Polymorphic Compressed Replication of Columnar Data in Scale-Up Hybrid Memory SystemsProceedings of the 13th ACM International Systems and Storage Conference on ZZZ10.1145/3383669.3398283(98-110)Online publication date: 30-May-2020
  • (2020)Dependability Aspects in Configurable Embedded Operating SystemsDependable Embedded Systems10.1007/978-3-030-52017-5_4(85-116)Online publication date: 10-Dec-2020

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media