Pmemkv Versions Save

Key/Value Datastore for Persistent Memory

1.4.1

1 year ago

This is the last bugfix release for pmemkv 1.4 version. Maintenance of this version is no longer supported.

Notable changes:

  • Fix get_all return value in robinhood engine
  • Fix iterator return value for zeroed keys

1.3.1

1 year ago

This is the last bugfix release for pmemkv 1.3 version. Maintenance of this version is no longer supported.

It contains all bugfixes and updates from previous patch releases (1.2.1, 1.1.1, 1.0.3 - see ChangeLog).

1.5.0

2 years ago

New features:

  • Introduce (optional) caching layer in radix engine. It can be enabled via config parameters
  • Add new config's flag - 'create_if_missing' to address the missing functionality. If set, pmemkv tries to open the pool and creates it if missing. It's mutually exclusive with 'create_or_error_if_exists' flag

Bug fixes:

  • Return correct status for wrong parameters in pmemkv_config_from_json (instead of failing on assert)
  • Fix iterator::key() implementation to return the whole key, not only the part up to the first null-terminator
  • Return correct status from memkind-based engines on open failure

Other changes:

  • Add alias 'create_or_error_if_exists' for 'force_create' config's flag and deprecate the latter one. The old flag can still be used and it behaves with no difference. It's discouraged from using, though
  • Add dram_vcmap engine based on tbb::concurrent_hash_map for benchmarking purposes
  • Switch default CMake's build type from "Debug" to "RelWithDebInfo" when compiling from sources - it's relevant for a GitHub users (who may e.g. run some benchmarks)

1.2.1

2 years ago

This is the last bugfix release for pmemkv 1.2 version. Maintenance of this version is no longer supported.

Notable changes:

  • fix of missing checks in move assigment operators
  • stree: fix operator== by adding missing const specifier
  • stree: fix missing check in node_iterator operator=
  • json_config: return error code for wrong parameters, instead of asserting them
  • json config: extend error messages

1.1.1

2 years ago

This is the last bugfix release for pmemkv 1.1 version. Maintenance of this version is no longer supported.

Notable changes:

  • json_config: return error status for improper parameters instead of asserting nullptr (and crashing)
  • fix error messages for NOT_FOUND and STOPPED_BY_CB statuses (which are not errors) by omitting setting (error) message from the previous status
  • vcmap: fix put() implementation (to be thread-safe) and decrease the number of temporary string allocations
  • vcmap: fix value_type for concurrent_hash_map
  • vcmap: fix to work with the latest TBB (2021.1) #894
  • stree: fix operator==
  • clarify and extend documentation

1.4

3 years ago

Features:

  • new experimental engine - robinhood (concurrent, unsorted, persistent map)
  • experimental iterators API which allows to directly modify values (or parts of values)
  • experimental transaction API which allows grouping put and remove operations into a single atomic action

Other changes:

  • optimized put() in radix engine

Major fixes:

  • calling pmemkv_errormsg() now returns empty message for NOT_FOUND and STOPPED_BY_CB (instead of a possible previous, unrelated error)
  • fix vcmap OOM error on put (github issue #798)

Known issues:

  • vcmap (github issue #894)

1.0.3

3 years ago

This is the last bugfix release for pmemkv 1.0 version. Maintenance of this version is no longer supported.

Notable changes:

  • VSmap::put method refactor (to use emplace)
  • add errormsg() to db class
  • add missing checks in move assignment operator in config class

1.3

3 years ago

This release introduces a new experimental engine - radix (single-threaded sorted map, backed by libpmemobj-cpp's radix_tree container).

We have also extended configuration class API and redesigned optimized version of stree engine.

Features:

  • radix engine (single-threaded sorted map)
  • config setters with type safety for common config fields
  • stree engine optimization (single-threaded sorted map with custom comparator support)

Major fixes:

  • fixed operator== in stree engine
  • fixed missing checks in move assignment operators

Other changes:

  • operator<< for pmem::kv::status

Known issues:

  • vcmap (github issues #623, #798)

1.2

3 years ago

This release introduces a new experimental engine - csmap (concurrent sorted map, backed by libpmemobj-cpp's concurrent_map). We have also provided support for custom comparators for sorted engines.

Features:

  • csmap engine (concurrent sorted map)
  • support for custom comparator for sorted engines

Optimizations:

  • vsmap::put() now uses emplace() internally

Other changes:

  • test framework refactor (scenario-based tests, extended tests for concurrency and sorting)

1.0.2

4 years ago

This release:

  • fixes misleading information in manpages
  • fixes compilation of vsmap engine on newer compilers
  • introduces requirement on sizeof(std::string) to be less than or equal to 32