Resource Proportional Programming for Persistent Memory
Suparna Bhattacharya, Kanchi Gopinath, Doug Voigt · 2020
Chapter 8, “Resource Proportional Programming for Persistent Memory”, considers RP issues with respect to memory performance when persistent memory (PM) becomes available. Chapter 8 describes the differences between PM and storage, and how these differences impact software. RP issues related to data flow are discussed including the data manipulation often involved in storage access (marshaling), the need to assure that data reaches PM (flushing and fencing) and the need to assure that applications can recover self-consistent data. Additional implications related to process flow are discussed including the notion that PM is so fast that it is not advantageous for a process to context switch during access and the CPU utilization perturbation from the resulting lack of IO bound processes. Software responses to the data and process flow implications of PM can cause complexity in the reuse and interoperability of storage and PM stacks related to access size granularity and the foundational functionality needed to assure data consistency (atomicity). These factors are explored in detail together in an analytic model of interoperable storage and PM stacks (dual stack scenario). Finally, we examine the RP of atomicity and high availability features in the context of the dual stack model.