2018
DOI: 10.1145/3276523
|View full text |Cite
|
Sign up to set email alerts
|

Object-oriented recovery for non-volatile memory

Abstract: New non-volatile memory (NVM) technologies enable direct, durable storage of data in an application's heap. Durable, randomly accessible memory facilitates the construction of applications that do not lose data at system shutdown or power failure. Existing NVM programming frameworks provide mechanisms to consistently capture a running application's state. They do not, however, fully support object-oriented languages or ensure that the persistent heap is consistent with the environment when the application is r… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
13
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
6
1
1

Relationship

1
7

Authors

Journals

citations
Cited by 25 publications
(13 citation statements)
references
References 48 publications
0
13
0
Order By: Relevance
“…There are numerous approaches to proving (standard) linearizability of concurrent data structures (e.g., [27,1,24]; see [9] for an overview), including specialisations to cope with weak memory models (e.g., [25,2,26,5,22,7]). The recent development of NVM has been accompanied by persistent versions of well-known concurrent constructs, including concurrent objects [11,3], synchronisation primitives [13,21] and transactional memory [16]. This paper has focussed on a persistent queue [11], against the recently developed notion of durable linearizability [14].…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…There are numerous approaches to proving (standard) linearizability of concurrent data structures (e.g., [27,1,24]; see [9] for an overview), including specialisations to cope with weak memory models (e.g., [25,2,26,5,22,7]). The recent development of NVM has been accompanied by persistent versions of well-known concurrent constructs, including concurrent objects [11,3], synchronisation primitives [13,21] and transactional memory [16]. This paper has focussed on a persistent queue [11], against the recently developed notion of durable linearizability [14].…”
Section: Resultsmentioning
confidence: 99%
“…The final (and most complex) of these steps, which establishes that the implementation refines the operational model, is fully mechanised in the KIV theorem prover [10]. It is important to note that the operational model is generic and for any particular verification one needs therefore just to establish step (3) in order to show that a particular algorithm is durable linearizable.…”
Section: Introductionmentioning
confidence: 99%
“…First, Redis represents and stores different objects with different encodings and formats, and P-Redis has to be able to interpret and handle the various types of objects properly. Second, Redis stores virtual addresses in the hashtable, and P-Redis needs to either adjust the addresses upon restart if the virtual address of the mmap'd hashtable file has changed, or change the internal hashtable implementation to use offset instead of absolute addresses [16]. Neither option is satisfying, and we choose the former solution for simplicity.…”
Section: Rocksdb and Redismentioning
confidence: 99%
“…[17,18,37]. Other work has explored systems software, such as transactional memory-type abstractions [7,16,27,45], file systems [47], and data structures [8,13,33,44]. Vector Clocks.…”
Section: Related Workmentioning
confidence: 99%