2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN) 2019
DOI: 10.1109/dsn.2019.00028
|View full text |Cite
|
Sign up to set email alerts
|

OneFile: A Wait-Free Persistent Transactional Memory

Abstract: A persistent transactional memory (PTM) library provides an easy-to-use interface to programmers for using byte-addressable non-volatile memory (NVM). Previously proposed PTMs have, so far, been blocking. We present OneFile, the first wait-free PTM with integrated wait-free memory reclamation. We have designed and implemented two variants of the OneFile, one with lock-free progress and the other with bounded wait-free progress. We additionally present software transactional memory (STM) implementations of the … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

1
60
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 40 publications
(61 citation statements)
references
References 66 publications
(79 reference statements)
1
60
0
Order By: Relevance
“…Software transactional memory (STM) can simplify concurrent programming and memory reclamation. OneFile [36] is a recent wait-free STM implementation with its own, STM-speci c memory reclamation. While OneFile's framework enables the implementation of a wide range of wait-free algorithms by directly converting sequential data structures, customized wait-free data structures can often better utilize parallelism and achieve higher overall performance.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Software transactional memory (STM) can simplify concurrent programming and memory reclamation. OneFile [36] is a recent wait-free STM implementation with its own, STM-speci c memory reclamation. While OneFile's framework enables the implementation of a wide range of wait-free algorithms by directly converting sequential data structures, customized wait-free data structures can often better utilize parallelism and achieve higher overall performance.…”
Section: Related Workmentioning
confidence: 99%
“…The recently proposed Ramalhete and Correia's wait-free queue [35] can be implemented // Constants const int era_freq, cleanup_freq; // Global variables thread-local int retire_counter = 0; thread-local int alloc_counter = 0; thread-local list retire_list = EMPTY; int global_era = 0; int reservations [ using Hazard Pointers, but the approach is too speci c to the queue's design and cannot be applied for other data structures. [36] presents wait-free memory reclamation for software transactional memory (STM), but the work does not consider wait-free memory reclamation for handcrafted data structures. Although STM is an important general synchronization technique, handcrafted data structures usually perform better and still need wait-free memory reclamation.…”
Section: Introductionmentioning
confidence: 99%
“…In some systems, these blocks are outermost lock-based critical sections, otherwise known as failure-atomic sections (FASEs); examples in this camp include Atlas [6], JUSTDO [24], and iDO [31]. In other systems, the atomic blocks are transactions, which may be speculatively executed in parallel with one another; examples in this camp include Mnemosyne [50], NV-Heaps [10], QSTM [1], and OneFile [39]. Intel's PMDK library [41] also provides a transactional interface, but solely for failure atomicity, not for synchronization among concurrently active threads.…”
Section: Runtime and Applicationsmentioning
confidence: 99%
“…Ensuring such consistency generally requires that code be instrumented with explicit write-back and fence instructions, to avoid the possibility that updated values may still reside only in the (transient) cache when data that depend upon them have already been written back. To save the programmer the burden of hand instrumentation, various groups have developed persistent versions of popular data structures [18,37,54,55] as well as more general techniques to add failure atomicity [6] to code based on locks [6,24,31], transactions [1,10,14,39,50], or both [41].…”
Section: Introductionmentioning
confidence: 99%
“…A comparison with persistent C/C++ libraries, i.e. Mnemosyne [Volos et al 2011], PMDK [Rudoff 2017], Romolus [Correia et al 2018] and OneFile [Ramalhete et al 2019], shows that the optimistic synchronization of PSTM outperforms dedicated persistent libraries in the presence of many concurrent write transactions. Using two common memoization libraries, we compared the performance of persistent graph reduction with their volatile evaluation.…”
Section: Introductionmentioning
confidence: 99%