Skip to content

PMDK Version 1.7

Compare
Choose a tag to compare
@marcinslusarz marcinslusarz released this 30 Sep 17:08
· 3208 commits to master since this release
1.7
bc5e309

This release:

  • Introduces new APIs in libpmemobj for managing space used by transactions.
    (see pmemobj_tx_log_append_buffer man page for details)
  • Introduces new APIs in librpmem, splitting rpmem_persist into rpmem_flush
    and rpmem_drain, allowing applications to use the flush + drain model
    already known from libpmem. (libpmemobj does not use this feature yet)
  • Optimizes large libpmemobj transactions by significantly reducing
    the amount of memory modified at the commit phase.
  • Optimizes tracking of libpmemobj reservations.
  • Adds new flags for libpmemobj's pmemobj_tx_xadd_range[_direct] API:
    POBJ_XADD_NO_SNAPSHOT and POBJ_XADD_ASSUME_INITIALIZED, allowing
    applications to optimize how memory is tracked by the library.

To support some of the above changes the libpmemobj on-media layout had
to be changed, which means that old pools have to be converted using
pmdk-convert >= 1.7.

Other changes:

Internal changes:

  • test: fault injection tests for pmemblk, pmemlog, and pmemobj
  • test: improved Python testing framework
  • test: support real pmem in bad blocks tests
  • common: allow not building examples and benchmarks