forked from pmem/pmemkv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
210 lines (149 loc) · 6.06 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
XXX Igor Chorążewicz <igor.chorazewicz@intel.com>
* Version 1.5
New features:
-
Bug fixes:
-
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 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.
-
Other changes:
- Switched 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)
-
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.