We’ve just released a new version of PMDK. I’d like to thank everyone who contributed.
In this release, we are deprecating the librpmem library and rpmemd tool. Using the librpmem library API will result in warnings and is no longer recommended. Those libraries and remote replication in libpmemobj were our experiments to try out ideas on combining persistent memory with RDMA. We learned from this experiment that this approach is not a good way to combine those technologies. Based on these learnings, we implemented the librpma, which is currently developed by our team and can be accessed on the github repository. The old approach has become a considerable maintenance cost for the team, blocking some potential PMDK optimizations. This is the final warning, before removing librpmem, along with remote replication in libpmemobj, in the next PMDK release, so please let us know if you have any concerns with this decision.
In this release, we also introduce asynchronous data movement operations in
the libpmem2. This API is marked as experimental, and to enable it, you
#define PMEM2_USE_MINIASYNC before
Additionally, this API requires that you also have the miniasync library installed.
To learn more about this feature, miniasync library, and our overall approach to the
asynchronous programming with persistent memory, please read our blog posts
Other changes and notable bug fixes:
This release introduces no changes to the on-media layout and is fully compatible with the previous version of PMDK.
As always, this release is available on GitHub: https://github.com/pmem/pmdk/releases/tag/1.12.0