Pratap Subrahmanyam (VMware)
Programming Persistent Memory in a Virtualized Environment using Golang
Writing crash consistent applications that use the byte addressable load/store mode of persistent memory, is difficult and error-prone. To make this mode accessible to normal developers we (1) enhanced Golang, and (2) virtualized persistent memory. To put these two improvements to test, we developed Go-Redis, a partial re-implementation of Redis in enhanced Golang, in a virtual machine. We share performance data from Go-Redis on standard Redis benchmarks, and also describe the unique beneficial aspects of programming persistent memory from within a virtualized environment.
Pratap Subrahmanyam helped develop the software emulation for the x86’s MMU, a key part of the virtual machine monitor, that got VMware started. He then helped the effort in VMware to virtualize byte addressable persistent memory, and also make it usable by developing language features, runtime libraries, and enhancing garbage collectors. Over the last several years, Pratap has been focusing on using FPGAs to enhance the performance of the vSphere virtualization platform.