-
Notifications
You must be signed in to change notification settings - Fork 73
/
CHANGES
266 lines (177 loc) · 6.23 KB
/
CHANGES
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
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
v1.1.0
=======
- Correct the use case and update instructions in thin_migrate's man page
- Ensure that the source device for thin_migrate is read-only
v1.0.14
=======
- Introduce thin_migrate for volume migration (technical preview)
- Fix thin_check's overriding roots not working if the original one broke
- Improve error tolerance of ref counting in building space maps
v1.0.13
=======
- Extend cache_check --clear-needs-check-flag to fix leaked blocks
- Suppress error messages from cache/era_dump on broken pipe error
- Add BTreeIterator
- Support listing the highest mapped block in thin_ls
- Support repairing device details tree from thin_repair
- Support vectored write in SyncIoEngine
- Fix missing version option in thin_explore
- Fix subcommand parsing in dev-tools
v1.0.12
=======
- Update license to SPDX identifier
- Suppress error messages from thin_dump on broken pipe error
- Fix version string compatibility issue with LVM
v1.0.11
=======
- Fix bitset index out-of-bounds error in cache_check
- Improve the hint messages from thin/cache_check for error resolution
v1.0.10
=======
- Support long options in thin_metadata_pack/unpack
- Make the space map formatting backward compatible to kernel's expansion behavior
- Support overriding the details tree root in thin_check
- Enhance thin_repair to detect a corner case involving incompatible child nodes
- Improve compatibility of thin_check against unexpected bytes in the index block
v1.0.9
======
- Extend thin_check --clear-needs-check-flag to fix leaked blocks
v1.0.8
======
- Stop reusing the same gap buffer in SyncIoEngine
v1.0.7
======
- Fix ioctl request code for PowerPC architecture
- Fix era_invalidate command parsing
v1.0.6
======
- Fix thin_delta command line parsing
- Fix range mappings preprocessing in thin_delta
v1.0.5
======
- Fix thin_dump output that doesn't keep shared mappings
- Fix build error on Musl
- Allow overriding PDATA_TOOLS in Makefile
- Ensure thin_dump/repair never fail with repairable metadata
- Use flatten output in stderr if it is not a tty
- thin_dump/repair now prefers non-empty roots while searching for roots
- Check the input values for thin_rmap
- Update dependencies: clap v4.4 and quick-xml v0.29
- Improve xml value parsing and error handling
- Fix value wrapping issue in thin_metadata_pack/unpack
v1.0.4
======
- Fix incorrect crc32c outputs on big endian targets
- Fix compilation errors on 32-bit platforms
v1.0.3
======
- Fix thin/cache_repair command line compatibility issue with lvconvert
v1.0.2
======
- Fix reading metadata snapshot in thin_ls
- Fix opening live metadata in era_invalidate
v1.0.1
======
- Fix checking metadata snapshot in thin_check
v1.0
====
- Rewrite in Rust
- Multithreaded tools
- Higher performance io engines (optional io_uring async engine)
- thin_dump/restore now retains sharing
- thin_metadata_pack/unpack
v0.9.0
======
- New support tools: thin_metadata_{pack,unpack}.
- thin_check can now check metadata snapshots.
- some metadata space map bug fixes.
- thin_check --auto-repair
- Stop thin_dump --repair/thin_repair ignoring under populated nodes.
v0.7.5
======
- Fix a bug that stopped cache_restore working with metadata version 2.
v0.7.4
======
- Update this file ;)
v0.7.3
======
- Improve error messages if XML given as input to tools that expect metadata.
There seems to be some confusion between XML and the metadata.
- Add --override-mapping-root debug option to thin_dump. This can be useful
when investigating damaged metadata.
- More functional tests.
v0.7.2
======
- Fix segfault in restore tools when given a tiny metadata file (< 4k).
- Lots more work on the functional tests.
- Fix a couple of unit test regressions
- Man page updates.
- Rewrite man pages in a text format. Simpler than writing directly in nroff.
v0.7.1
======
- Fix a few bugs in block_cache.
- Ditch Ruby/Cucumber for the functional tests. Now written in Scheme.
- Be more aggressive about flushing dirty blocks from the block cache. Very
little performance impact.
- Optimisations in space_map_disk (small performance improvement for restore
tools).
v0.7.0
======
- switch to C++11. This may cause problems with v. old versions of g++.
- support cache metadata format 2
- support custom emitter plugins for thin_dump.
- thin_dump --dev-id; allows the user to dump just the devices they're
interested in.
- cache_writeback; Use for offline decommission of a cache.
- thin_scan/thin_ll_dump/restore dev tools.
- --enable-dev-tools configure option. Use this for the extra tools.
- thin_delta, various bug fixes.
- various changes to the block cache.
- thin_show_duplicates; a development only tool that scans block devices to
calculate the level of data duplication. Uses either fixed block sizes or
context sensitive.
v0.6.3
======
- Improve error messages if output file doesn't exist or is tiny.
v0.6.2
======
- Fix bug in thin_delta
- Fix recent regression in thin_repair.
- Force g++-98 dialect
- Fix bug in thin_trim
v0.6.1
======
Fix bug in thin_dump when using metadata snaps.
v0.6.0
======
thin_ls
v0.5.6
======
era_invalidate may be run on live metadata if the --metadata-snap option is given.
v0.5.5
======
You may now give the --metadata_snap option to thin_delta without specifying where the snap is.
Update man pages to make it clearer that most tools shouldn't be run on live metadata.
Fix some bugs in the metadata reference counting for thin_check.
v0.5.1
======
Fix bug where the tools would crash if given a very large metadata
device to restore to.
v0.5
====
- thin_delta, thin_trim
- --clear-needs-check flag for cache_check
- space map checking for thin check
v0.4
====
- All tools switch to using libaio. This gives a large performance
boost, especially to the write focused tools like thin_restore.
- Added a progress monitor to thin_restore, cache_restore and era_restore
- Added a --quiet/-q option to *_restore to turn off the progress bar
- Removed variable hint size support from cache tools. The kernel
still only supports a fixed 32bit width. This will have a side
effect of reducing the executable sizes due to less template
instantiation.
- Tools rolled into a single executable to save space.
- Fixed some bugs when walking bitsets (possibly effecting cache_dump
and cache_check).