Web lists-archives.com

Bug#913889: ITP: pmdk -- persistent memory development kit




Package: wnpp
Severity: wishlist
Owner: Adam Borowski <kilobyte@xxxxxxxxxx>

* Package name    : pmdk
  Version         : 1.5
  Upstream Author : Intel and contributors
* URL             : https://pmem.io/pmdk/
* License         : BSD-3
  Programming Lang: C, C++
  Description     : persistent memory development kit
 The Persistent Memory Development Kit is a collection of libraries and
 tools to manage and access non-volatile memory.  Via the DAX feature,
 most operations don't require a call to the kernel, allowing operating
 directly on such memory with only minimal latencies.
 .
 While basic access would require nothing but a mmap() call, it is
 non-trivial for a programmer to achieve consistency when facing
 unexpected power loss -- individual cachelines often don't get committed
 to actual memory for a prolonged time, become persistent in an unexpected
 order; etc.  PMDK hides all this complexity, and provides tools to check
 for errors that would make stores non-durable, fail crash consistency,
 persistently leak space, etc.
 .
 Available Libraries:
  * libpmem: provides low level persistent memory support
  * libpmemobj: provides a transactional object store, providing memory
    allocation, transactions, and general facilities for persistent memory
    programming.
  * libpmemblk: supports arrays of pmem-resident blocks, all the same
    size, that are atomically updated.
  * libpmemlog: provides a pmem-resident log file.
  * libvmem: turns a pool of persistent memory into a volatile memory
    pool, similar to the system heap but kept separate and with its own
    malloc-style API.
  * libvmmalloc: transparently converts all dynamic memory allocations
    into persistent memory allocations.
  * libpmempool: provides support for off-line pool management and
    diagnostics.
  * librpmem: provides low-level support for remote access over RDMA.
 Available Utilities:
  * pmempool: manages and analyzes persistent memory pools.
  * pmemcheck: pmem-specific instrumentation for Valgrind.


There's existing packaging in Ubuntu (for 1.4) and upstream (current and
well-tested, but not very debianish), I intend to take pieces from both.