Week 2 of PIRL’20 will feature keynotes from Arm Research and Verizon Media, updates on the kernel development for PMEM, PMDK, running MongoDB on PMEM, and how to test recovery from power failure.
Driving Technology adoption – Persistent Memory: Opportunities, Approaches and Learnings
Samir Raizada (Verizon Media)
Talk video Slides
Abstract: This talk is about driving technology in general and persistent memory in particular. I will cover the opportunities persistent memory presents, how we drove the efforts to adopt the technology, how we challenged our architects and developers to come up with ideas and build solutions through brainstorming and hack events. I will discuss outcomes of these events, potential open source projects that can be useful for the industry. I will end with lessons learnt and suggestions for vendors, partners and industry as a whole.
Biography: I am an Architect in Verizon Media’s Performance Engineering Group with more than 10 years at the company. I explore new technologies and their applications for our workloads, and evangelize those to our numerous properties. I have been working on the evaluation and application of 3D Xpoint and Persistent Memory to real-world use-cases for about three years now.
Software Implications of Persistent Memory and Architectural Support
William Wang (Arm Research)
Talk video Slides
Abstract: This presentation will talk about software implications of persistent memory, highlighting two software implications/problems: 1) the read-of-not-yet-persisted-write problem for concurrent programs, and the architectural proposal to get that fixed with persistent atomics, and 2) the implications of persistent memory on sequential programs running on weak memory models such as Arm’s.
Biography: William Wang is a researcher at Arm Research in Cambridge, where he leads the systems research on non-volatile memories. His current research focus is on addressing the persistent memory programming challenges with the right architectural and microarchitectural support.
Abstract: At PIRL 2019 I told the story of surviving an encounter with the 3rd rail of Linux filesystems. While that survival felt like a capstone event that established “The Programming Model” in Linux it left a series of unanswered questions and feature requests in its wake. To this day, mounting a filesystem in DAX mode throws an “EXPERIMENTAL” warning to the system log. What remaining challenges warrant that continued designation? From a wider view, what does a kernel practitioner see as the next opportunities for Linux to better support the industry’s “experiment” with persistent memory?
Abstract: Persistent Memory is a paradigm shifting technology, however, writing software for it may be counterintuitive at times. To make PMEM programming feel more idiomatic in C++, we have developed libpmemobj-cpp, a library that is bundled with a suite of libraries called Persistent Memory Development Kit (PMDK). Key components of this library constitute its persistent containers, resembling the ones in the Standard Template Library (STL) in C++. This talk will present the main concepts, design choices, and issues related to both single-threaded and concurrent data structures for persistent memory.
Abstract: On April 2, 2019 Intel Optane Persistent Memory became the first commercially available storage class memory (SCM). We were interested to learn how SCM affects performance of applications. We compared the performance of MongoDB’s storage engine WiredTiger on two Optane storage devices: one packaged as SCM and another packaged as SSD. Although these devices deliver vastly different performance when accessed in a raw form, their performance under the entire software stack, including OS, file system and the application, is not that different, because in-memory caches effectively mask latency.
Abstract: Applications protect data integrity against crashes by using update mechanisms that are atomic with respect to failure. Unfortunately, the checkered history of such mechanisms precludes blind trust. This talk describes the design and implementation of a simple and cost-effective testbed for subjecting applications running on a complete hardware/software stack to repeated sudden whole-system power interruptions. The talk will furthermore present our findings when we used such a testbed to evaluate a crash-tolerance mechanism for persistent memory by subjecting it to over 50,000 power failures.