Pangolin persistent object library
Pangolin is a research persistent-memory object library combining DRAM micro-buffers, checksums and parity for corruption recovery.
Updates use temporary DRAM copies; commit coordinates persistent objects, checksums and parity through redo logging. [1]
Default pgl_get reads do not verify checksums. Scrub mode checks periodically; Conservative mode checks each object access. [1]
Unlike filesystem-level protection that excludes writable DAX mappings, object-library protection can accompany mapped-data updates. [2]
Relations
Limitations
- Overlapping corruption in the same parity column can defeat repair; online recovery also has concurrency restrictions. [1]
Citations
- Lu Zhang and Steven Swanson. Pangolin: A Fault-Tolerant Persistent Memory Programming Library. USENIX ATC 2019, pp. 897-912, sections 3.1-3.6 and 4.6.
- Xu et al. NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System. SOSP 2017, section 4.3. DOI: 10.1145/3132747.3132761.
Further reading
Sources & caveats
- Historical prototype and primary-source synthesis, not a current deployment recommendation or a benchmark reproduction.
- The paper's media-error injection uses mprotect and SIGSEGV; it is not physical fault injection. [1]