Skip to content

Releases: pmem/pmdk

PMDK Version 1.10

28 Oct 14:00
1.10
b661e50
Compare
Choose a tag to compare

This release introduces a new stable PMDK library, libpmem2, which
is the next major release of libpmem.
This library has an entirely new, but familiar API that addresses many
shortcomings of the previous version while retaining all of its
functionality. To learn more, see https://pmem.io/pmdk/libpmem2/ or
libpmem2(7).
The old library, libpmem, is still going to be maintained for the
foreseeable future, but we'd like to encourage any new applications to
leverage libpmem2.

PMDK Version 1.9.2

28 Oct 14:11
1.9.2
271f5b7
Compare
Choose a tag to compare

This release reverts an incorrect change in SDS handling
"pool: disable SDS check if not supported", and introduces
a proper fix for the issues that patch attempted to correct.

PMDK Version 1.10-rc1

16 Oct 09:33
Compare
Choose a tag to compare
PMDK Version 1.10-rc1 Pre-release
Pre-release
common: 1.10-rc1 release

PMDK Version 1.9.1

16 Sep 10:05
1.9.1
Compare
Choose a tag to compare
PMDK Version 1.9.1 Pre-release
Pre-release

Detailed list of bug fixes:

  • common: fix LIBFABRIC flags
  • common: Add runtime SDS check and disable
  • pool: disable SDS check if not supported
  • obj: fix failure atomicity bug in huge allocs
  • obj: add missing drain after ulog processing

PMDK Version 1.8.1

16 Sep 09:50
1.8.1
051a976
Compare
Choose a tag to compare

Detailed list of bug fixes:

  • test: Fix obj_zones for ppc64le
  • doc: fix return type of pmemobj_tx_stage()
  • common: fix calculation of bad blocks in os_badblocks_get()
  • pmem: Fix data cache flush on ppc64
  • obj: fix run allocated recalculation
  • obj: fix failure atomicity bug in huge allocs
  • obj: add missing drain after ulog processing

PMDK Version 1.7.1

16 Sep 08:54
1.7.1
02dd8b8
Compare
Choose a tag to compare

Detailed list of bug fixes:

  • os_posix: Use FreeBSD to control secure_getenv definition
  • obj: fix pmemcheck marker in pmemobj_tx_wcsdup
  • common: fix manpage section references in comments and text files
  • doc: fix formatting of pmreorder man page
  • obj: fix transient redo log of more than 64 entries
  • obj: fix unintended recursive locking during palloc
  • pool: fix possible memory leak
  • obj: fix potential NULL-dereference in ulog_store
  • pmem: fix pmemcheck support on platforms with eADR
  • obj: fix lock release order in palloc publish
  • doc: fix make uninstall for man page links
  • obj: fix zone size calculations
  • doc: fix return type of pmemobj_tx_stage()
  • common: fix calculation of bad blocks in os_badblocks_get()
  • obj: fix failure atomicity bug in huge allocs
  • obj: add missing drain after ulog processing

PMDK Version 1.9

03 Jul 09:40
1.9
1926ffb
Compare
Choose a tag to compare

This release:

  • Switches the default instruction set for memcpy, memmove and memset
    implementations on x86 to AVX512, and introduces numerous performance
    improvements for those operations on AVX and SSE2 fallback paths.
  • Optimizes transactional allocations in libpmemobj by avoiding one
    extraneous cache miss and reducing the amount of work required to perform
    a reservation.
  • Introduces a new API in libpmemobj, pmemobj_tx_set_failure_behavior,
    that enables the application to control the behavior of aborting
    transactions.
  • Improves performance of pool creation on Windows by avoiding expensive
    physical page allocation during file allocation.
  • Stabilizes support for ppc64.

Other changes:

  • pmem: mem[cpy|set] optimization when eADR is available
  • obj: detect msync failures in non-pmem variants of mem[cpy|move|set]

Notable bug fixes:

  • core: fix Last_errormsg_get when NO_LIBPTHREAD is defined
  • pmem: read Unsafe Shutdown Count from region instead of interleave set
  • common: fix deep_flushes failing on platforms that don't need them
  • pmem: fix data cache flush on ppc64
  • obj: fix run allocated recalculation

PMDK Version 1.9-rc2

01 Jul 10:24
1.9-rc2
41864fa
Compare
Choose a tag to compare
PMDK Version 1.9-rc2 Pre-release
Pre-release
PMDK Version 1.9-rc2

PMDK Version 1.9-rc1

19 Jun 17:12
Compare
Choose a tag to compare
PMDK Version 1.9-rc1 Pre-release
Pre-release
PMDK Version 1.9-rc1

PMDK Version 1.8

31 Jan 17:46
1.8
0245d75
Compare
Choose a tag to compare

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)