TY - JOUR
T1 - Durable Queue Implementations Built on a Formally Defined Strand Persistency Model
AU - Han, Jixin
AU - Kimura, Keiji
N1 - Funding Information:
We would like to offer our special thanks to professor Tachio Terauchi from Waseda university for helpful discussions and comments about the theoretical part of this paper.
Publisher Copyright:
© 2021 Information Processing Society of Japan.
PY - 2021
Y1 - 2021
N2 - Emerging byte accessible non-volatile memory (NVM), or persistent memory (PM), technologies can promise durability like existing file systems even at an unexpected crash, as well as the competitive performance with DRAM. Similar to the memory consistency problems, appropriate order of memory access operations and cache eviction operations, or persistent operations, must be considered to guarantee both program recoverability and performance with the underlying persistency model. Several persistency models have been proposed in the literature. The strand persistency model, which potentially shows higher performance than the epoch persistency model, has more relaxed rules to exploit more parallelism. However, due to the lack of formal definition of the strand persistency model, legality and recoverability of strand persistency based programs against system crashes have been abandoned. To address this, we first propose an operational semantics of the strand persistency model to formalize the behavior of a program, memory propagation, and history generation under a concurrent environment. Then, we investigate the durability of library implementations for concurrent objects equipped with strand primitives, and propose a correctness criterion that the implementations should preserve, originated from buffered durable linearizability. Finally, as a case study, we discuss two concurrent queue implementations and show how the proposed semantics and criterion capture both the durability and linearizability of implementations.
AB - Emerging byte accessible non-volatile memory (NVM), or persistent memory (PM), technologies can promise durability like existing file systems even at an unexpected crash, as well as the competitive performance with DRAM. Similar to the memory consistency problems, appropriate order of memory access operations and cache eviction operations, or persistent operations, must be considered to guarantee both program recoverability and performance with the underlying persistency model. Several persistency models have been proposed in the literature. The strand persistency model, which potentially shows higher performance than the epoch persistency model, has more relaxed rules to exploit more parallelism. However, due to the lack of formal definition of the strand persistency model, legality and recoverability of strand persistency based programs against system crashes have been abandoned. To address this, we first propose an operational semantics of the strand persistency model to formalize the behavior of a program, memory propagation, and history generation under a concurrent environment. Then, we investigate the durability of library implementations for concurrent objects equipped with strand primitives, and propose a correctness criterion that the implementations should preserve, originated from buffered durable linearizability. Finally, as a case study, we discuss two concurrent queue implementations and show how the proposed semantics and criterion capture both the durability and linearizability of implementations.
KW - Buffered durable linearizability
KW - Non-volatile memory
KW - Persistency model
KW - Persistent memory
UR - http://www.scopus.com/inward/record.url?scp=85123826373&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85123826373&partnerID=8YFLogxK
U2 - 10.2197/IPSJJIP.29.823
DO - 10.2197/IPSJJIP.29.823
M3 - Article
AN - SCOPUS:85123826373
SN - 0387-5806
VL - 29
SP - 823
EP - 838
JO - Journal of Information Processing
JF - Journal of Information Processing
ER -