iii
Chapter 1: Introduction to Persistent Memory Programming ���������������������������������� 1
A High-Level Example Program ���������������������������������������������������������������������������������������������������� 2
What’s Different? ��������������������������������������������������������������������������������������������������������������������� 5
The Performance Difference���������������������������������������������������������������������������������������������������� 6
Program Complexity ���������������������������������������������������������������������������������������������������������������� 7
How Does libpmemkv Work? ��������������������������������������������������������������������������������������������������� 8
What’s Next? ��������������������������������������������������������������������������������������������������������������������������������� 9
Summary��������������������������������������������������������������������������������������������������������������������������������������� 9
Chapter 2: Persistent Memory Architecture ����������������������������������������������������������� 11
Persistent Memory Characteristics ��������������������������������������������������������������������������������������������� 12
Platform Support for Persistent Memory ������������������������������������������������������������������������������������ 13
Cache Hierarchy �������������������������������������������������������������������������������������������������������������������������� 14
Power-Fail Protected Domains ���������������������������������������������������������������������������������������������������� 16
The Need for Flushing, Ordering, and Fencing ���������������������������������������������������������������������������� 19
Data Visibility ������������������������������������������������������������������������������������������������������������������������������ 23
Intel Machine Instructions for Persistent Memory ���������������������������������������������������������������������� 24
Detecting Platform Capabilities �������������������������������������������������������������������������������������������������� 25
Table of Contents
About the Author ��������������������������������������������������������������������������������������������������� xiii
About the Technical Reviewer ���������������������������������������������������������������������������������xv
About the Contributors ������������������������������������������������������������������������������������������xvii
Acknowledgments ��������������������������������������������������������������������������������������������������xxi
Preface �����������������������������������������������������������������������������������������������������������������xxiii
Précédent

- 4/457

Suivant