scispace - formally typeset
Search or ask a question
Topic

Transactional memory

About: Transactional memory is a research topic. Over the lifetime, 2365 publications have been published within this topic receiving 60818 citations.


Papers
More filters
Proceedings ArticleDOI
16 Apr 2018
TL;DR: Non-volatile memory technology and its impact on systems is viewed as the convergence of several past research trends starting with the concept of single-level store, encompassing the 1980s excitement around bubble memory, building upon persistent object systems, and leveraging recent work in transactional memory.
Abstract: Around 2010, we observed significant research activity around the development of non-volatile memory technologies. Shortly thereafter, other research communities began considering the implications of non-volatile memory on system design, from storage systems to data management solutions to entire systems. Finally, in July 2015, Intel and Micron Technology announced 3D XPoint. It's now 2018; Intel is shipping its technology in SSD packages, but we've not yet seen the widespread availability of byte-addressable non-volatile memory that resides on the memory bus. We can view non-volatile memory technology and its impact on systems through an historical lens revealing it as the convergence of several past research trends starting with the concept of single-level store, encompassing the 1980s excitement around bubble memory, building upon persistent object systems, and leveraging recent work in transactional memory. We present this historical context, recalling past ideas that seem particularly relevant and potentially applicable and highlighting aspects that are novel.

9 citations

Journal ArticleDOI
13 Jun 2018
TL;DR: This work presents a new methodology for transforming high-performance lock-free linked data structures into high- performanceLock-free transactional link data structures without revamping the data structures’ original synchronization design that achieves 4,700 to 915,000 times fewer spurious aborts than the alternatives.
Abstract: Nonblocking data structures allow scalable and thread-safe access to shared data. They provide individual operations that appear to execute atomically. However, it is often desirable to execute multiple operations atomically in a transactional manner. Previous solutions, such as Software Transactional Memory (STM) and transactional boosting, manage transaction synchronization separately from the underlying data structure’s thread synchronization. Although this reduces programming effort, it leads to overhead associated with additional synchronization and the need to rollback aborted transactions. In this work, we present a new methodology for transforming high-performance lock-free linked data structures into high-performance lock-free transactional linked data structures without revamping the data structures’ original synchronization design. Our approach leverages the semantic knowledge of the data structure to eliminate the overhead of false conflicts and rollbacks. We encapsulate all operations, operands, and transaction status in a transaction descriptor, which is shared among the nodes accessed by the same transaction. We coordinate threads to help finish the remaining operations of delayed transactions based on their transaction descriptors. When a transaction fails, we recover the correct abstract state by reversely interpreting the logical status of a node. We also present an obstruction-free version of our algorithm that can be applied to dynamic execution scenarios and an example of our approach applied to a hash map. In our experimental evaluation using transactions with randomly generated operations, our lock-free transactional data structures outperform the transactional boosted ones by 70% on average. They also outperform the alternative STM-based approaches by a factor of 2 to 13 across all scenarios. More importantly, we achieve 4,700 to 915,000 times fewer spurious aborts than the alternatives.

9 citations

Patent
24 Jan 2014
TL;DR: In this paper, a transactional memory environment supporting transaction nesting is provided, in which a computed digest based on the execution of at least one of a plurality of instructions of the transaction is generated.
Abstract: Generating a digest in a transactional memory environment for performing transactional executions, the transactional memory environment supporting transaction nesting is provided. Included is generating for a transaction, by a computer system, a computed digest based on the execution of at least one of a plurality of instructions of the transaction; based on beginning a nested transaction, executed within the transactional region of the transaction, saving a snapshot of the computed digest as a nesting level snapshot; beginning execution of the nested transaction: updating, by the computer system, the computed digest based on the execution of at least one of a plurality of instructions of the nested transaction; and based on an abort of the nested transaction, restoring the computed digest from the nesting level snapshot and restarting the nested transaction.

9 citations

Journal ArticleDOI
26 Jan 2012
TL;DR: The extension of the atomic language construct with an attribute that specifies the definition of conflict is proposed, so that programmers can write code which adjusts what kinds of conflicts are to be detected, relaxing or tightening the conditions according to the forms of interference that can be tolerated by a particular algorithm.
Abstract: In this paper we investigate the benefits of turning the concept of transactional conflict from its traditionally fixed definition into a variable one that can be dynamically controlled in software. We propose the extension of the atomic language construct with an attribute that specifies the definition of conflict, so that programmers can write code which adjusts what kinds of conflicts are to be detected, relaxing or tightening the conditions according to the forms of interference that can be tolerated by a particular algorithm. Using this performance-motivated construct, specific conflict information can be associated with portions of code, as each transaction is provided with a local definition that applies while it executes. We find that defining conflicts in software makes possible the removal of dependencies which arise as a result of the coarse synchronization style encouraged by the TM programming model. We illustrate the use of the proposed construct in a variety of use cases with real applications, showing how programmers can take advantage of their knowledge about the problem and other global information not available at run-time. We describe how to implement a hardware TM design that utilizes this software construct. Our experiments reveal that leveraging software-defined conflicts, the programmer is able to achieve significant reductions in the number of aborts--over 50p for most applications. At 16 threads, our system with software-defined conflicts outperforms LogTM-SE in nearly all benchmarks, reaching an average reduction in execution time of 18p.

9 citations

01 Jan 2014
TL;DR: This paper extends the design of DEUCE, a Java STM framework, to support OTB integration and shows the implementation details of OTB-Set, a transactionally boosted linked-list-based set, and shows how different STM algorithms like NOrec and TL2 can interact with it.
Abstract: Providing transactional collections of data structures with the same performance of highly concurrent data structures enables performance-competitive transactional composability. Although Software Transactional Memory (STM) is increasingly becoming a promising technology for designing and implementing transactional applications, concurrent data structures still do not exploit STM’s advantages. Recently, Optimistic Transactional Boosting (OTB) has been proposed as a methodology to implement transactional versions of highly concurrent data structures. OTB works in a similar way to STM algorithms, but on the level of data structure semantics. This similarity is a motivation for finding a way to integrate operations of transactional data structures with STM frameworks. In this paper, we extend the design of DEUCE, a Java STM framework, to support OTB integration. Using our extension, programmers can include both OTB data structure operations and traditional memory reads/writes in the same transaction, and the framework will guarantee that both will execute safely as an atomic block. While keeping the same simple interface and the same independence from the JVM as the original DEUCE framework, we allow developers to easily integrate more OTB data structures. As a case study, we show the implementation details of OTB-Set, a transactionally boosted linked-list-based set, and we show how different STM algorithms like NOrec and TL2 can interact with it. Our experiments show up to 10x improvement in the performance of micro-benchmarks over the original DEUCE framework.

9 citations


Network Information
Related Topics (5)
Compiler
26.3K papers, 578.5K citations
87% related
Cache
59.1K papers, 976.6K citations
86% related
Parallel algorithm
23.6K papers, 452.6K citations
84% related
Model checking
16.9K papers, 451.6K citations
84% related
Programming paradigm
18.7K papers, 467.9K citations
83% related
Performance
Metrics
No. of papers in the topic in previous years
YearPapers
202316
202240
202129
202063
201970
201888