PETRA
Open Access
- 8 March 2021
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Architecture and Code Optimization
- Vol. 18 (2), 1-26
- https://doi.org/10.1145/3446391
Abstract
Emerging byte-addressable Non-Volatile Memories (NVMs) enable persistent memory where process state can be recovered after crashes. To enable applications to rely on persistent data, durable data structures with failure-atomic operations have been proposed. However, they lack the ability to allow users to execute a sequence of operations as transactions. Meanwhile, persistent transactional memory (PTM) has been proposed by adding durability to Software Transactional Memory (STM). However, PTM suffers from high performance overheads and low scalability due to false aborts, logging, and ordering constraints on persistence. In this article, we propose PETRA, a new approach for constructing persistent transactional linked data structures. PETRA natively supports transactions, but unlike PTM, relies on the high-level information from the data structure semantics. This gives PETRA unique advantages in the form of high performance and high scalability. Our experimental results using various benchmarks demonstrate the scalability of PETRA in all workloads and transaction sizes. PETRA outperforms the state-of-the-art PTMs by an order of magnitude in transactions of size greater than one, and demonstrates superior performance in transactions of size one.Keywords
Funding Information
- Sandia National Laboratories
- NSF (1914717 and 1740095)
- National Technology and Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc.
- U.S. Department of Energy's National Nuclear Security Administration (DE-NA0003525)
This publication has 70 references indexed in Scilit:
- MnemosyneACM SIGPLAN Notices, 2011
- A comprehensive strategy for contention management in software transactional memoryACM SIGPLAN Notices, 2009
- Software transactional memoryCommunications of the ACM, 2008
- Software Transactional Memory: Why Is It Only a Research Toy?Queue, 2008
- Concurrent programming without locksACM Transactions on Computer Systems, 2007
- Software transactional memoryDistributed Computing, 1997
- A methodology for implementing highly concurrent data objectsACM Transactions on Programming Languages and Systems, 1993
- Wait-free synchronizationACM Transactions on Programming Languages and Systems, 1991
- Principles of transaction-oriented database recoveryACM Computing Surveys, 1983
- The serializability of concurrent database updatesJournal of the ACM, 1979