Hi All,
I am part of a small team at VMware working on projects related to persistent
memory. We have been working on adding persistent memory support to the Go
programming language, and I wanted to spread the word about it.
Our project - go-pmem - adds native support for programming persistent memory
in the Go programming language. A detailed design of our approach to add this
support is described in our 2020 USENIX ATC paper go-pmem. An implementation of
the above design based on Go 1.15 release is available here.
Some of the features of the persistent memory support added to Go are:
* Support for persistent memory allocations
* Garbage collection of persistent memory heap objects
* Dynamically sized persistent memory heap
* Automatic compiler instrumentation of transactional code blocks to
enable crash-consistent data-updates
We are also engaging with members in the Go community to gauge their interest
in adding support for persistent memory in Go. You can find our proposal for the
same at https://github.com/golang/go/issues/43810.
We welcome the community to try out go-pmem and send any feedback our way!
Thanks,
Jerrin