Skip to content

PMDK Version 1.8

Compare
Choose a tag to compare
@marcinslusarz marcinslusarz released this 31 Jan 17:46
· 2839 commits to master since this release
1.8
0245d75

This release:

  • Introduces new API in libpmemobj for user-assisted defragmentation (see pmemobj_defrag man page for details).
  • Introduces experimental support for PPC64LE architecture.
  • Introduces new flag in libpmemobj for opting-out of transaction aborts on failure (POBJ_TX_NO_ABORT), along with new variants of existing APIs that didn't accept flags (pmemobj_tx_xfree, pmemobj_tx_xpublish,
    pmemobj_tx_xlock, pmemobj_tx_xlog_append_buffer, pmemobj_tx_xstrdup, pmemobj_tx_xwcsdup).
  • Moves out libvmem and libvmmalloc to the new repository (https://github.com/pmem/vmem).

libpmemobj on-media layout has not changed in this release, which means that pool conversion is not needed when updating PMDK from 1.7 to 1.8. pmdk-convert 1.8 will not be released.

Other changes:

  • obj: introduce new statistics useful for defrag
  • obj: introduce transient/persistent statistics enabling
  • obj: introduce pmemobj_tx_(set/get)_user_data funcs
  • obj: introduce pmemobj_(set/get)_user_data funcs
  • obj: disable workaround for offsetof() since VS 15.5 in public header
  • common: drop support for libndctl < 63 on Linux
  • pool: rename -N --no-exec to -d --dry-run

Notable bug fixes:

  • obj: fix zone size calculations (partial fix for #4528)
  • obj: fix potential NULL-dereference in ulog_store
  • obj: fix unintended recursive locking during palloc
  • obj: fix lock release order in palloc publish
  • obj: fix transient redo log of more than 64 entries
  • obj: fix capacity ulog calculation
  • obj: fix check of unaligned capacity size
  • rpmem: add a missing case for GPSPM + FLUSH_STRICT
  • pmem: fix pmemcheck support on platforms with eADR
  • pool: fix possible memory leak
  • rpmem: fix possible memory leak in rpmemd_config_read
  • rpmem: fix possible memory leak in rpmemd_log_init
  • rpmem: fix possible use-after-free

Known problems:

  • obj: allocation is partially outside the pool (#4528)