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

Libpmemobj-cpp Version 1.11

Compare
Choose a tag to compare
@szyrom szyrom released this 30 Sep 17:17
· 653 commits to master since this release

This release introduces a new experimental container - persistent radix_tree along with inline_string and string_view classes.

It also introduces a new pointer type: self_relative_ptr with std::atomic specialization.

New features:

  • experimental radix_tree container (single-threaded sorted map)
  • experimental inline_string class (class serves similar purpose to pmem::obj::string, but keeps the data within the same allocation as inline_string itself)
  • string_view class (support for compilers older than C++17)
  • experimental self_relative_ptr and std::atomic<self_relative_ptr> specialization (persistent smart ptr which encapsulates the self offseted pointer and provides member access, dereference and array access operators - for some workloads it could be faster alternative for persistent_ptr)

Optimizations:

  • optimizations for concurrent_map with self_relative_ptr

Other changes:

  • missing constructors for basic_string class
  • conversion operator for basic_string class
  • ported libcxx's sorted map tests
  • lower and lower_eq methods for concurrent_map
  • missing constructor for concurrent_map (comparator as an argument)