skip to main content
10.1145/3477113.3487269acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article

Decoupling Application Logic from Persistent Memory Frameworks with AspectC++

Published:25 October 2021Publication History

ABSTRACT

Over the past decade, various systems and software libraries have been developed that provide crash consistency on byte-addressable persistent memory. They often require programmers to adapt their code significantly or to use special compiler plugins. Constant innovation in this evolving field makes it desirable to be able to easily switch to more recent systems without massive code refactoring, and without changing compilers.

In this paper, we show how aspect-oriented programming can be used to automatically apply crash consistency to normal, sparsely annotated C++ code. In two case studies, we find that our approach significantly reduces the amount of code required to apply state-of-the-art crash consistency frameworks such as PMDK libpmemobj++ and Pronto.

Skip Supplemental Material Section

Supplemental Material

PLOS21-AOP-PMem.mp4

mp4

29.9 MB

References

  1. Christoph Borchert. 2017. Aspect-Oriented Technology for Dependable Operating Systems. Dissertation. Technische Universität Dortmund. https://doi.org/10.17877/DE290R-17995Google ScholarGoogle Scholar
  2. Nachshon Cohen, David T. Aksun, and James R. Larus. 2018. Object-Oriented Recovery for Non-Volatile Memory. Proceedings of the ACM on Programming Languages 2, OOPSLA(Oct. 2018), 153:1--153:22. https: //doi.org/10.1145/3276523Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andreia Correia, Pascal Felber, and Pedro Ramalhete. 2018. Romulus: Efficient Algorithms for Persistent Transactional Memory. In Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures (SPAA '18). Association for Computing Machinery, New York, NY, USA, 271--282. https://doi.org/10.1145/3210377.3210392Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Tyler Coy, Shuibing He, Bin Ren, and Xuechen Zhang. 2020. Compiler Aided Checkpointing Using Crash-Consistent Data Structures in NVMM Systems. In Proceedings of the 34th ACM International Conference on Supercomputing (ICS '20). Association for Computing Machinery, New York, NY, USA, 1--13. https://doi.org/10.1145/3392717.3392755Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bang Di, Jiawen Liu, Hao Chen, and Dong Li. 2021. Fast, Flexible, and Comprehensive Bug Detection for Persistent Memory Programs. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2021). Association for Computing Machinery, New York, NY, USA, 503--516. https://doi.org/10/gjrs5tGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  6. Reem Elkhouly, Mohammad Alshboul, Akihiro Hayashi, Yan Solihin, and Keiji Kimura. 2019. Compiler-Support for Critical Data Persistence in NVM. ACM Transactions on Architecture and Code Optimization (TACO) 16, 4 (Dec. 2019). https://doi.org/10.1145/3371236Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Jerrin Shaji George, Mohit Verma, Rajesh Venkatasubramanian, and Pratap Subrahmanyam. 2020. Go-Pmem: Native Support for Programming Persistent Memory in Go. In 2020 USENIX Annual Technical Conference (USENIXATC 20). 859--872. https://www.usenix.org/ conference/atc20/presentation/georgeGoogle ScholarGoogle Scholar
  8. Intel. 2019. Persistent Memory Development Kit. https://github.com/ pmem/pmdkGoogle ScholarGoogle Scholar
  9. Intel. 2021. Intel Inspector. https://www.intel.com/content/www/us/ en/develop/tools/oneapi/components/inspector.htmlGoogle ScholarGoogle Scholar
  10. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. 1997. Aspect-Oriented Programming. In ECOOP'97 --- Object-Oriented Programming (Lecture Notes in Computer Science), Mehmet Aksit and Satoshi Matsuoka (Eds.). Springer, Berlin, Heidelberg, 220--242. https://doi.org/ 10.1007/BFb0053381Google ScholarGoogle Scholar
  11. Aasheesh Kolli, Vaibhav Gogte, Ali Saidi, Stephan Diestelhorst, Peter M. Chen, Satish Narayanasamy, and Thomas F. Wenisch. 2017. Language-Level Persistency. ACM SIGARCH Computer Architecture News 45, 2 (June 2017), 481--493. https://doi.org/10.1145/3140659.3080229Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Marcel Köppen, Jana Traue, Christoph Borchert, Jörg Nolte, and Olaf Spinczyk. 2019. Cache-Line Transactions: Building Blocks for Persistent Kernel Data Structures Enabled by AspectC++. In Proceedings of the 10th Workshop on Programming Languages and Operating Systems (PLOS '19). Association for Computing Machinery, New York, NY, USA, 38--44. https://doi.org/10.1145/3365137.3365396Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Charles Lamb, Gordon Landis, Jack Orenstein, and Dan Weinreb. 1991. The ObjectStore Database System. Commun. ACM 34, 10 (Oct. 1991), 50--63. https://doi.org/10.1145/125223.125244Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Amirsaman Memaripour, Joseph Izraelevitz, and Steven Swanson. 2020. Pronto: Easy and Fast Persistence for Volatile Data Structures. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '20). Association for Computing Machinery, New York, NY, USA, 789--806. https://doi.org/10.1145/3373376.3378456Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Amirsaman Memaripour, Joseph Izraelevitz, and Steven Swanson. 2020. Pronto: Easy and Fast Persistence for Volatile Data Structures (1.1). Lausanne, Switzerland. https://doi.org/10.5281/zenodo.3605351Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Jinglei Ren, Jishen Zhao, Samira Khan, Jongmoo Choi, Yongwei Wu, and Onur Mutlu. 2015. ThyNVM: Enabling Software-Transparent Crash Consistency in Persistent Memory Systems. In Proceedings of the 48th International Symposium on Microarchitecture (Waikiki, Hawaii) (MICRO-48). Association for Computing Machinery, New York, NY, USA, 672--685. https://doi.org/10.1145/2830772.2830802Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Torvald Riegel, Christof Fetzer, and Pascal Felber. 2006. Snapshot Isolation for Software Transactional Memory. In First ACM SIGPLAN Workshop on Languages, Compilers and Hardware Support for Transactional Computing.Google ScholarGoogle Scholar
  18. Olaf Spinczyk and Daniel Lohmann. 2007. The Design and Implementation of AspectC++. Knowledge-Based Systems, Special Issue on Techniques to Produce Intelligent Secure Software 20, 7 (Oct. 2007), 636--651. https://doi.org/10.1016/j.knosys.2007.05.004Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jana Traue. 2018. Fine-Grained Transactions for NVRAM. Ph.D. Dissertation. BTU Cottbus - Senftenberg, Germany. https://opus4.kobv.de/ opus4-btu/frontdoor/index/index/docId/4636Google ScholarGoogle Scholar

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
  • Published in

    cover image ACM Conferences
    PLOS '21: Proceedings of the 11th Workshop on Programming Languages and Operating Systems
    October 2021
    96 pages
    ISBN:9781450387071
    DOI:10.1145/3477113

    Copyright © 2021 ACM

    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: 25 October 2021

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate17of32submissions,53%

    Upcoming Conference

    SOSP '24
  • Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)2

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader