Skip to content

Releases: pmem/pmdk

PMDK Version 2.1.0

24 May 09:08
2.1.0
Compare
Choose a tag to compare

This release :

  • Introduces the new logging subsystem in the release build for all libraries.
    • Messages by default are printed to syslog and stderr but might be redirected to a user-defined function, see pmem(obj)_log_set_function() for details.
    • Log level thresholds are controlled via new API, see pmem(obj)_log_set_treshold() for details.
    • These new APIs are not available for LIBPMEM2 and LIBPMEMPOOL at the moment.
    • The new logging subsystem is suppressed in the debug build when any of the legacy debug logging environment variables is set:
      • PMEM_LOG_LEVEL_FILE
      • PMEM2_LOG_LEVEL_FILE
      • PMEMOBJ_LOG_LEVEL_FILE
      • PMEMPOOL_LOG_LEVEL_FILE
    • The debug logging subsystem becomes DEPRECATED.
  • Introduces fuses against ill-considered use of NDCTL_ENABLE=n.
    • PMEMOBJ_IGNORE_DIRTY_SHUTDOWN and PMEMOBJ_IGNORE_BAD_BLOCKS are required to acknowledge the understanding of what production-critical functions are missing for the build without NDCTL.
  • Does not allow create PMEMOBJ pool without unsafe shutdown counter (USC) if not explicitly disabled. (#5968)
    • use PMEMOBJ_CONF="sds.at_create=0" to disable USC when working without PMem (emulated PMem, Docker, etc.).
  • Drops support for building without libpthread (NO_LIBPTHREAD build-time define).

PMDK Version 2.1.0-rc1

24 May 08:57
2.1.0-rc1
Compare
Choose a tag to compare
Pre-release

This release :

  • introduces fuses against ill-considered use of NDCTL_ENABLE=n

    • PMEMOBJ_IGNORE_DIRTY_SHUTDOWN and PMEMOBJ_IGNORE_BAD_BLOCKS are required to acknowledge the understanding of what production-critical functions are missing for the build without NDCTL
  • does not allow opening pmem pool without unsafe shutdown counter if not explicitly disabled

  • remove support for build time define NO_LIBPTHREAD

PMDK Version 2.0.1

06 Dec 13:03
2.0.1
31bdac0
Compare
Choose a tag to compare

This release :

PMDK Version 2.0.1-rc1

30 Nov 07:25
2.0.1-rc1
Compare
Choose a tag to compare
Pre-release

This release :

  • Significantly reduces the libpmem's stack usage.
  • pmemobj_open() stack usage reduction below 12kB threshold.

PMDK Version 2.0.0

08 Aug 10:04
2.0.0
ba92d6b
Compare
Choose a tag to compare

This release :

  • Removes libpmemlog, libpmemblk, btt, and their support in (lib)pmempool
  • Removes Windows support
  • Removes FreeBSD support
  • Removes all pmem2_async operations (experimental)
  • Removes PowerPC and ARM architectures (experimental) from regular validation
  • Limits PMDK's static builds validation scope
  • Removes Fedora and Debian from regular validation
  • Adds reference platform provisioning instructions for PMDK testing
  • Identifies and temporarily disables tests permanently or sporadically failing in some configurations:
  • Re-enable pmem2_persist_valgrind tests previously excluded by mistake (#5855)

PMDK Version 1.13.1

31 May 13:35
1.13.1
b9ec478
Compare
Choose a tag to compare

This release :

  • Identifies and temporarily disables tests permanently or sporadically failing in some configurations:

  • Fixes failing tests:

    • obj_tx_alloc_mt (#5680)
    • pmem2_map_from_existing (#5594)
  • Temporarily disable pmem2_badblock test (#5650) due to missing infrastructure (#5636, #5652)

Other changes and notable bug fixes:

  • pmem2: fix valgrind instrumentation in pmem2_map_from_exisiting (#5605)
  • pmem2: remove data_mover memory leak (#5681, #5637)
  • test: update permissions of DAX devices after clearing bad blocks (#5611)
  • test: disable avx512f tests (pmem2_mem_ext) under Valgrind (#5658)

PMDK Version 1.13.1-rc2

26 May 12:14
9e87547
Compare
Choose a tag to compare
Pre-release

This release :

Other changes and notable bug fixes:

  • test: update permissions of DAX devices after clearing bad blocks (#5611)
  • pmem2: fix valgrind instrumentation in pmem2_map_from_exisiting (#5605)
  • test: disable avx512f tests (pmem2_mem_ext) under Valgrind (#5658)

PMDK Version 1.13.1-rc1

25 May 12:13
Compare
Choose a tag to compare
Pre-release

This release :

  • Identifies and temporarily disables tests permanently or sporadically failing in some configurations:

  • Fixes failing tests:

    • obj_tx_alloc_mt (#5680)
    • pmem2_integration (#5637)
    • pmem2_map_from_existing (#5594)

Other changes and notable bug fixes:

  • test: update permissions of DAX devices after clearing bad blocks (#5611)
  • pmem2: fix valgrind instrumentation in pmem2_map_from_exisiting (#5605)
  • test: disable avx512f tests (pmem2_mem_ext) under Valgrind (#5658)

PMDK Version 1.13.0

26 Apr 12:41
1.13.0
004ff05
Compare
Choose a tag to compare

This release:

  • Removes (previously deprecated) librpmem. Those interested
    in remote persistent memory support should use the rpma library
    (https://github.com/pmem/rpma).
  • Removes libpmemset - it was an experimental library.
  • Sets libpmemblk as deprecated, to be removed in the next release.
  • Sets libpmemlog as deprecated, to be removed in the next release.
  • Sets btt support as deprecated, to be removed in the next release.
  • Sets async as deprecated, to be removed in the next release.
  • Sets FreeBSD support as deprecated, to be removed in the next release.
  • Sets Windows support as deprecated, to be removed in the next release.

Deprecations and removals are done accordingly to the support strategy
outlined in the blog post:
https://pmem.io/blog/2022/11/update-on-pmdk-and-our-long-term-support-strategy.

Other changes and notable bug fixes:

  • core: handle ENOMEM gracefully during logging (#5515)
  • pool: fix dependencies with pmempool (#5521)
  • test: add more security checks for pmempool input
  • pmreorder: share markers from an application through env variable (#5419)
  • examples: fix potential buffer overflow in pmemobjfs example (#5472)
  • several fixes to support ppc64le architecture
  • several fixes for issues found by Coverity tool

Known issues:

  • The latest validation cycle exposed previously unknown persistency issues
    related to pmem2 async functions (DEPRECATED) and miniasync (EXPERIMENTAL):
    #5596 and #5597. Both will be removed in the PMDK 1.14 release. These issues
    do NOT affect any other PMDK library.

PMDK Version 1.13.0-rc1

21 Apr 12:54
1.13.0-rc1
5529c2f
Compare
Choose a tag to compare
Pre-release

This release:

  • Removes (previously deprecated) librpmem. Those interested
    in remote persistent memory support should use the rpma library
    (https://github.com/pmem/rpma).
  • Removes libpmemset - it was an experimental library.
  • Sets libpmemblk as deprecated, to be removed in the next release.
  • Sets libpmemlog as deprecated, to be removed in the next release.
  • Sets btt support as deprecated, to be removed in the next release.
  • Sets async as deprecated, to be removed in the next release.
  • Sets FreeBSD support as deprecated, to be removed in the next release.
  • Sets Windows support as deprecated, to be removed in the next release.

Deprecations and removals are done accordingly to the support strategy
outlined in the blog post:
https://pmem.io/blog/2022/11/update-on-pmdk-and-our-long-term-support-strategy.

Other changes and notable bug fixes:

  • core: handle ENOMEM gracefully during logging (#5515)
  • pool: fix dependencies with pmempool (#5521)
  • test: add more security checks for pmempool input
  • pmreorder: share markers from an application through env variable (#5419)
  • examples: fix potential buffer overflow in pmemobjfs example (#5472)
  • several fixes to support ppc64le architecture
  • several fixes for issues found by Coverity tool