Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

Libpmemobj-cpp Version 1.9

Compare
Choose a tag to compare
@szyrom szyrom released this 31 Jan 14:06
· 1100 commits to master since this release

This release moves segment_vector out of experimental namespace and directory. It means that abovementioned container is guaranteed to have stable API and on-media layout.

It also introduces defragmentation functionality with new defrag class in pmem::detail namespace and helper classes (which currently reside in "detail" directory): enumerable_thread_specific and volatile_state.

With this release, we also decreased restart time of concurrent_hash_map (with a usage of the enumerable_thread_specific feature).

New features:

  • new methods for pmem::obj::string (find() and its overloads)
  • defragmentation feature as a separate class in pmem::obj namespace and support for the defragmentation in containers: concurrent_hash_map, vector, string
  • removed template parameters from persistent_ptr_base class (make it type agnostic) and moved to the public API
  • new methods for pmem::obj::concurrent_hash_map (insert_or_assign and its overloads)

Optimizations:

  • bucket rehashing in concurrent_hash_map moved to transaction
  • faster concurrent_hash_map restart (with "persistent TLS")

Other changes:

  • added GitHub Actions as an additional CI
  • added documentation and doc snippets with some usage examples
  • added compatibility tests for different libpmemobj-cpp versions