xxvi
between different kinds of memory, including persistent memory.
libvmemcache is an embeddable and lightweight in-memory caching
solution. It is designed to fully take advantage of large-capacity
memory, such as persistent memory with DAX, through memory
mapping in an efficient and scalable way.
• Chapter 11. Designing Data Structures for Persistent Memory –
Provides a wealth of information for designing data structures for
persistent memory.
• Chapter 12. Debugging Persistent Memory Applications – Introduces
tools and walks through several examples for how software developers
can debug persistent memory–enabled applications.
• Chapter 13. Enabling Persistence using a Real-World Application –
Discusses how a real-world application was modified to enable
persistent memory features.
• Chapter 14. Concurrency and Persistent Memory – Describes how
concurrency in applications should be implemented for use with
persistent memory.
• Chapter 15. Profiling and Performance – Teaches performance
concepts and demonstrates how to use the Intel VTune suite of tools
to profile systems and applications before and after code changes are
made.
• Chapter 16. PMDK Internals: Important Algorithms and Data
Structures – Takes us on a deep dive of the PMDK design, architecture,
algorithms, and memory allocator implementation.
• Chapter 17. Reliability, Availability, and Serviceability (RAS) –
Describes the implementation of reliability, availability, and
serviceability (RAS) with the hardware and operating system layers.
• Chapter 18. Remote Persistent Memory – Discusses how applications
can scale out across multiple systems using local and remote persistent
memory.
• Chapter 19. Advanced Topics – Describes things such as NUMA, using
software volume managers, and the mmap() MAP_SYNC flag.
PrefaCe
between different kinds of memory, including persistent memory.
libvmemcache is an embeddable and lightweight in-memory caching
solution. It is designed to fully take advantage of large-capacity
memory, such as persistent memory with DAX, through memory
mapping in an efficient and scalable way.
• Chapter 11. Designing Data Structures for Persistent Memory –
Provides a wealth of information for designing data structures for
persistent memory.
• Chapter 12. Debugging Persistent Memory Applications – Introduces
tools and walks through several examples for how software developers
can debug persistent memory–enabled applications.
• Chapter 13. Enabling Persistence using a Real-World Application –
Discusses how a real-world application was modified to enable
persistent memory features.
• Chapter 14. Concurrency and Persistent Memory – Describes how
concurrency in applications should be implemented for use with
persistent memory.
• Chapter 15. Profiling and Performance – Teaches performance
concepts and demonstrates how to use the Intel VTune suite of tools
to profile systems and applications before and after code changes are
made.
• Chapter 16. PMDK Internals: Important Algorithms and Data
Structures – Takes us on a deep dive of the PMDK design, architecture,
algorithms, and memory allocator implementation.
• Chapter 17. Reliability, Availability, and Serviceability (RAS) –
Describes the implementation of reliability, availability, and
serviceability (RAS) with the hardware and operating system layers.
• Chapter 18. Remote Persistent Memory – Discusses how applications
can scale out across multiple systems using local and remote persistent
memory.
• Chapter 19. Advanced Topics – Describes things such as NUMA, using
software volume managers, and the mmap() MAP_SYNC flag.
PrefaCe
