Zhuque: Failure is Not an Option, it's an Exception
George Hodgkins, Yi Xu, Steven Swanson, Joseph Izraelevitz
Abstract
Persistent memory (PMEM) allows direct access to fast storage at byte granularity. Previously, processor caches backed by persistent memory were not persistent, complicating the design of persistent applications and reducing their performance. A new generation of systems with flush-on-fail semantics effectively offer persistent caches, offering the potential for much simpler, faster PMEM programming models.
This work proposes Whole Process Persistence (WPP), a new programming model for systems with persistent caches. In the WPP model, all process state is made persistent. On restart after power failure, this state is reloaded and execution resumes in an application-defined interrupt handler.
We also describe the Zhuque runtime, which transparently provides WPP by interposing on the C bindings for system calls in userspace. It requires little or no programmer effort to run applications on Zhuque.
Our measurements show that Zhuque outperforms state of the art PMEM libraries, demonstrating mean speedups across all benchmarks of 5.24× over PMDK, 3.01× over Mnemosyne, 5.43× over Atlas, and 4.11× over Clobber-NVM. More important, unlike existing systems, Zhuque places no restrictions on how applications implement concurrency, allowing us to run a newer version of Memcached on Zhuque and gain more than 7.5× throughput over the fastest existing persistent implementations.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext fba82f7f-d62d-4c80-bc48-d9300caf117aCited by top-tier papers3
- Persistent Processor ArchitectureJianping Zeng, Jungi Jeong, Changhee JungMICRO 2023 · 12 citations
- TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVMFangnuo Wu, Mingkai Dong, Gequan Mo, Haibo ChenSOSP 2023 · 10 citations
- LightWSP: Whole-System Persistence on the CheapYuchen Zhou, Jianping Zeng, Changhee JungMICRO 2024 · 8 citations
Builds on7
- MOD: Minimally Ordered Durable Datastructures for Persistent MemorySwapnil Haria, Mark D. Hill, Michael M. SwiftASPLOS 2020 · 47 citations
- HOOP: Efficient Hardware-Assisted Out-of-Place Update for Non-Volatile MemoryMiao Cai, Chance C. Coats, Jian HuangISCA 2020 · 33 citations
- Clobber-NVM: log less, re-execute moreYi Xu, Joseph Izraelevitz, Steven SwansonASPLOS 2021 · 30 citations
- PMEM-spec: persistent memory speculation (strict persistency can trump relaxed persistency)Jungi Jeong, Changhee JungASPLOS 2021 · 30 citations
- PMThreads: persistent memory threads harnessing versioned shadow copiesZhenwei Wu, Kai Lu, Andrew Nisbet, Wenzhe Zhang et al.PLDI 2020 · 29 citations
Related papers
- Puddles: Application-Independent Recovery and Location-Independent Data for Persistent MemorySuyash Mahar, Mingyao Shen, TJ Smith, Joseph Izraelevitz et al.EuroSys 2024 · 2 citations
- Jaaru: efficiently model checking persistent memory programsHamed Gorjiara, Guoqing Harry Xu, Brian DemskyASPLOS 2021 · 34 citations
- Redesigning High-Performance LSM-based Key-Value Stores with Persistent CPU CachesYijie Zhong, Zhirong Shen, Zixiang Yu, Jiwu ShuICDE 2023 · 8 citations
- Persistent State Machines for Recoverable In-memory Storage Systems with NVRamWen Zhang, Scott Shenker, Irene ZhangOSDI 2020 · 18 citations
- go-pmem: Native Support for Programming Persistent Memory in GoJerrin Shaji George, Mohit Verma, Rajesh Venkatasubramanian, Pratap SubrahmanyamUSENIX ATC 2020 · 25 citations
