Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2933349.2933354acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

On testing persistent-memory-based software

Published: 26 June 2016 Publication History

Abstract

Leveraging Storage Class Memory (SCM) as a universal memory--i.e. as memory and storage at the same time--has deep implications on database architectures. It becomes possible to store a single copy of the data in SCM and directly operate on it at a fine granularity. However, exposing the whole database with direct access to the application dramatically increases the risk of data corruption. In this paper we propose a lightweight on-line testing framework that helps find and debug SCM-related errors that can occur upon software or power failures. Our testing framework simulates failures in critical code paths and achieves fast code coverage by leveraging call stack information to limit duplicate testing. It also partially covers the errors that might arise as a result of reordered memory operations. We show through an experimental evaluation that our testing framework is fast enough to be used with large software systems and discuss its use during the development of our in-house persistent SCM allocator.

References

[1]
Intel® Architecture Instruction Set Extensions Programming Reference. Technical report, 2015. http://software.intel.com/en-us/intel-isa-extensions.
[2]
SNIA NVM Programming Model V1.1. Technical report, 2015. http://www.snia.org/sites/default/files/NVMProgrammingModel_v1.1.pdf.
[3]
J. Arulraj, A. Pavlo, and S. R. Dulloor. Let's talk about storage & recovery methods for non-volatile memory database systems. In ACM SIGMOD, 2015.
[4]
A. Chatzistergiou, M. Cintra, and S. D. Viglas. Rewind: Recovery write-ahead system for in-memory non-volatile data-structures. PVLDB, 8(5), 2015.
[5]
S. Chen and Q. Jin. Persistent B+-trees in non-volatile main memory. PVLDB, 8(7), 2015.
[6]
J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. ACM SIGPLAN Not., 47(4), 2011.
[7]
H. Kimura. FOEDUS: OLTP engine for a thousand cores and NVRAM. In ACM SIGMOD, 2015.
[8]
P. Lantz, S. Dulloor, S. Kumar, R. Sankaran, and J. Jackson. Yat: A validation framework for persistent memory software. In USENIX ATC, 2014.
[9]
I. Oukid, W. Lehner, T. Kissinger, T. Willhalm, and P. Bumbulis. Instant recovery for main-memory databases. In CIDR, 2015.
[10]
T. S. Pillai, V. Chidambaram, R. Alagappan, S. Al-Kiswany, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau. All file systems are not created equal: On the complexity of crafting crash-consistent applications. In USENIX OSDI, 2014.
[11]
S. Venkataraman, N. Tolia, P. Ranganathan, and R. H. Campbell. Consistent and durable data structures for non-volatile byte-addressable memory. In USENIX FAST, 2011.
[12]
H. Volos, A. J. Tack, and M. M. Swift. Mnemosyne: Lightweight persistent memory. SIGPLAN Not., 47(4), 2011.
[13]
J. Yang, C. Sar, and D. Engler. Explode: A lightweight, general system for finding serious storage system errors. In USENIX OSDI, 2006.
[14]
J. Yang, Q. Wei, C. Chen, C. Wang, K. L. Yong, and B. He. NV-Tree: reducing consistency cost for NVM-based single level systems. In USENIX FAST, 2015.

Cited By

View all
  • (2023)SMT-Based Verification of Persistency Invariants of Px86 ProgramsVerified Software. Theories, Tools and Experiments.10.1007/978-3-031-25803-9_6(92-110)Online publication date: 1-Feb-2023
  • (2021)Corundum: statically-enforced persistent memory safetyProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446710(429-442)Online publication date: 19-Apr-2021
  • (2021)Verifying correctness of persistent concurrent data structures: a sound and complete methodFormal Aspects of Computing10.1007/s00165-021-00541-8Online publication date: 17-May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
DaMoN '16: Proceedings of the 12th International Workshop on Data Management on New Hardware
June 2016
89 pages
ISBN:9781450343190
DOI:10.1145/2933349
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 June 2016

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

SIGMOD/PODS'16
SIGMOD/PODS'16: International Conference on Management of Data
June 26 - July 1, 2016
California, San Francisco

Acceptance Rates

Overall Acceptance Rate 94 of 127 submissions, 74%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)1
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)SMT-Based Verification of Persistency Invariants of Px86 ProgramsVerified Software. Theories, Tools and Experiments.10.1007/978-3-031-25803-9_6(92-110)Online publication date: 1-Feb-2023
  • (2021)Corundum: statically-enforced persistent memory safetyProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446710(429-442)Online publication date: 19-Apr-2021
  • (2021)Verifying correctness of persistent concurrent data structures: a sound and complete methodFormal Aspects of Computing10.1007/s00165-021-00541-8Online publication date: 17-May-2021
  • (2019)Non-Volatile Memory Database Management SystemsSynthesis Lectures on Data Management10.2200/S00891ED1V01Y201812DTM05511:1(1-191)Online publication date: 12-Feb-2019
  • (2018)Managing Non-Volatile Memory in Database SystemsProceedings of the 2018 International Conference on Management of Data10.1145/3183713.3196897(1541-1555)Online publication date: 27-May-2018
  • (2017)SAP HANA adoption of non-volatile memoryProceedings of the VLDB Endowment10.14778/3137765.313778010:12(1754-1765)Online publication date: 1-Aug-2017
  • (2017)Data Structure Engineering For Byte-Addressable Non-Volatile MemoryProceedings of the 2017 ACM International Conference on Management of Data10.1145/3035918.3054777(1759-1764)Online publication date: 9-May-2017

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