Pangolin: A Fault-Tolerant Persistent Memory Programming Library
summary
Library provides crash consistency plus media- and software-error protection for NVMM by combining replication of metadata with XOR parity row across 16 GB zones, using DRAM macro buffers for transactional updates and a hybrid lock/atomic XOR parity update (threshold ~8 KB). It detects corruption via checksums and repairs with parity, costs about 1% storage overhead for gigabyte pools, and reports performance comparable to replication (latency ~11% lower in some overwrites, ~90% throughput on complex structures).
AI-written summary · about
chapters (14)
- 0:00Intro
- 0:11Pangolin: A Fault-tolerant Persistent Memory Programming Library
- 1:18Challenges with PMEM programming
- 2:05Persistent memory error types
- 4:03Handle uncorrectable & undetectable errors
- 5:10Pangolin design goals
- 5:29Pangolin - Replication, parity, and checksums
- 7:09Pangolin's data redundancy
- 7:55Pangolin's parity coding
- 8:32Micro-buffering provides transactions
- 10:08Updating parity using only modified ranges
- 12:00Multithreaded update - Atomic XORs
- 12:34Multithreaded update - Hybrid scheme
- 14:59Conclusion
related talks
43mPromise and Pitfalls of Persistent Memory
35mDeveloping Software for Persistent Memory
01h 08mC++ and Persistent Memory Technologies, Like Intel's 3D-XPoint
35mDeveloping Software for Persistent Memory
19mMemento: A Framework for Detectable Recoverability in Persistent Memory
17mPreview: Persistent Memory
24mgo-pmem: Native Support for Programming Persistent Memory in Go
06mEarly experience of Utilizing Persistent Memory for Database... (Work-in-Progress Report)
