This repository has been archived by the owner on Mar 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 118
/
ChangeLog
246 lines (178 loc) · 7.72 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
Tue Jul 27 2021 Igor Chorążewicz <igor.chorazewicz@intel.com>
* Version 1.5.0
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)
Tue Jul 06 2021 Łukasz Stolarczuk <lukasz.stolarczuk@intel.com>
* Version 1.2.1
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
Mon Jun 28 2021 Łukasz Stolarczuk <lukasz.stolarczuk@intel.com>
* Version 1.1.1
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
Mon Feb 15 2021 Igor Chorążewicz <igor.chorazewicz@intel.com>
* Version 1.4
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)
Tue Oct 06 2020 Szymon Romik <szymon.romik@intel.com>
* Version 1.0.3
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
Fri Oct 02 2020 Szymon Romik <szymon.romik@intel.com>
* Version 1.3
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)
Fri May 29 2020 Szymon Romik <szymon.romik@intel.com>
* Version 1.2
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, extednded tests for
concurrentcy and sorting)
Fri Feb 07 2020 Igor Chorążewicz <igor.chorazewicz@intel.com>
* Version 1.0.2
This is a bugfix release for pmemkv 1.0
This release:
- fixes misleading information in manpages
- fixes compilation of vsmap engine on newer compilers
- introduces requirement on size of std::string to be less than or equal to 32
Fri Jan 31 2019 Szymon Romik <szymon.romik@intel.com>
* Version 1.1
This release introduces a defragmentation feature and cmap engine
optimizations.
Features:
- API extension for defragmentation (currently supported only by cmap engine)
Optimizations:
- faster restart time of cmap engine
- faster put method execution for cmap engine
Mon Oct 28 2019 Szymon Romik <szymon.romik@intel.com>
* Version 1.0.1
This is a bugfix release for pmemkv 1.0
Major fixes:
- fix finding memkind package
- fix finding gtest in user-defined paths
- add SOVERSION
- skip valgrind and pmemcheck tests if they are not installed
Fri Oct 04 2019 Szymon Romik <szymon.romik@intel.com>
* Version 1.0
This is the first release of pmemkv project which guarantees backward
compatibility.
Optimizations:
- refactored core for libpmemobj-based engines
- adjusted cmap engine to libpmemobj-cpp 1.8 optimizations
Changes in tests and build system:
- added support for generic tests parameterized i.a. by engine type
- added framework for pmreorder tests
Other changes:
- added new, more specific error statuses
- added C++ API for config structure
- added doxygen documentation for C++ API
- moved function to create configuration from JSON string to a new
optional library
- generic support for libpmemobj-based engines for handling persistent
pointers as a config parameter
Fri Jun 28 2019 Szymon Romik <szymon.romik@intel.com>
* Version 0.8
This is the first official release of pmemkv project.
It unifies and extends native C and C++ API and introduces config
structure - flexible way for configuring engines.
Pmemkv core was redesigned - C++ API is implemented on the top of C API
now and exposed as a header-only library.
We have also provided extended pmemkv engines and API documentation in
form of man pages.
Optimizations:
- string_view class for optimal keys passing
- heterogeneous lookup in cmap engine
Features:
- added error messages
- extended error handling
Changes in tests and build system:
- added Travis CI
- cmake creation and build system refactoring
- added tests with pmemcheck/memcheck/helgrind/drd
- added clang-format
- added Coverity support
- added coverage support
- added CI jobs for checking compatibility with Ruby, Java, Node.js bindings
Others:
- removed functions to iterate over keys only
- removed engine_context function
We have also modified existing engines and tests to meet changes in both
pmemkv core and API. Poorly chosen function names were cleaned up.
The reason this release has version 0.8 is because we are still open for
suggestions from customers before we stabilize the APIs and commit
to maintaining backward compatibility. It does not mean that the library
is unfinished or unstable. However, more engines and extended
functionality are planned to be delivered in the future.