forked from i-rinat/reiserfs-defrag
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
158 lines (121 loc) · 5.66 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
2018-06-02 zvezdochiot <[email protected]>
* tag: v0.2.3
* rfsd: implement path defrag.
2013-07-02 Rinat Ibragimov <[email protected]>
* tag: v0.2.2
* doc: add man page
* doc: add inside.md documenting some internals of reiserfs-defrag
* rfsd: add configurable binary installation path. Use SBINDIR
cmake variable to specify it.
2012-12-15 Rinat Ibragimov <[email protected]>
* tag: v0.2.1
* rfsd: fix sparse block handling in moveObjectsUp
* rfsd: tolerate duplicate entries in file list (by removing
duplicates)
* rfsd: rename binary `rfsd' to `reiserfs-defrag'
* rfsd: explicitly state license for code. GPLv3
* rfsd: update content of README.md
2012-12-14 Rinat Ibragimov <[email protected]>
* tag: v0.2
* rfsd: this will be version v0.2
* rfsd: add prepocessor checking of endiannes. Prevent building on
everything except little-endian.
* rfsd: move specified files to beginning of partition. File names
should be supplied in external file
* rfsd: allow changing of block cache max size via command line
parameter
* rfsd: fix minor bug in recursivelyGetBlocksOfObject which could
lead to incomplete defragmentation of files larger than 30 MB
2012-12-02 Rinat Ibragimov <[email protected]>
* rfsd: add method that guesses key type and uses it for key
comparison. The same method used in reiserfs driver itself.
* rfsd: use unions in key_t struct to extract key parts.
2012-11-26 Rinat Ibragimov <[email protected]>
* rfsd: add additional checks for all tree nodes read.
2012-11-24 Rinat Ibragimov <[email protected]>
* rfsd: add superblock sanity checks
2012-11-19 Rinat Ibragimov <[email protected]>
* rfsd: add command-line switch controlling data journaling. Specify
--journal-data to enable journaling not only meta-data but data also.
2012-11-15 Rinat Ibragimov <[email protected]>
* rfsd: use own assertion macroses (assert{1,2}) both in release
and in debug versions
* rfsd: stop operation if read or write error occured
* rfsd: print read/write positions with timestamps (disabled by default)
* rfsd: fix recursive caching bug
* rfsd: combine read/writes for unformatted blocks thus improving
speed a bit
2012-11-09 Rinat Ibragimov <[email protected]>
* rfsd: fix progress bar bug on extremely narrow terminals
tag:v0.1
* Version 0.1
* ChangeLog: use change log
* rfsd: notion of allocation groups. Each of them maintains list of
free extents in sorted order to speedup and amend free blocks
allocation. Can have size of 128 MiB, 256 MiB or 512 MiB. Now 128.
* rfsd: continuous extent allocator. Either allocated continuous
extent of asked size or fails.
* rfsd: introduced squeezing of AG. All data blocks in AG moved to its
beginning therefore creating large free extent at its end. Maintains
data block order.
* rfsd: introduced sweeping of AG. Which is effectively first part of
squeezing. Moves blocks away from allocation group.
* rfsd: add "forbidden AG" parameter to allocateFreeExtent
* rfsd: avoid including leaf containing first indirect item of file
to its ideal block order
* rfsd: implement incremental defrag. Large file will be processed
by piecemeal.
* rfsd: implement nice progress bars and use them.
* rfsd: estimate amount of work beforehand.
* rfsd: try to free some continuous space in case of allocation
failure. AG selected by score which depend both on its free space
fragmentation and some random value. Thus deadlocks avoided.
* rfsd: use progress bars in treeThroughDefrag
* rfsd: basic command-line processing
* rfsd: print usage on --help
* rfsd: introduced 'none' type defragmentation that do nothing
* misc: drop tuxonizer.
* rfsd: dump errors to stdout instead of stderr to ease logging
* rfsd: use several passes for incremental defrag. Exit early if
no files need defragmentation
* rfsd: allow user to interrupt process by gracefully ending current
operation.
* rfsd: added optional squeeze stage with tunable threshold
* rfsd: fix bug in handling filesystems of sizes not multiple of
AG size. Stricter checks of movemap inconsistency.
2012-10-07 Rinat Ibragimov <[email protected]>
tag:tree-through-v2
* rfsd: using leaf index to speedup lookup leaf node by block indices
it refers.
* rfsd: change move block functions to traverse subset of tree
* rfsd: split up huge move job into smaller chunks
* rfsd: implement treeThroughDefrag -- iterative version of previous
attempts.
* rfsd: fix bug with sparse files handling which caused rfsd stop
in panic.
2012-09-16 Rinat Ibragimov <[email protected]>
tag:journaling-merge
* rfsd: merge transaction into larger one, significantly improves
speed.
2012-09-14 Rinat Ibragimov <[email protected]>
tag:journaling
* rfsd: journaling support. All writes to filesystem from now performed
by transactions.
* rfsd: switch from fsync to fdatasync as it's slighly faster.
2012-09-12 Rinat Ibragimov <[email protected]>
* rfsd: basic read cache. Block that read remains in memory for some
time in hope that they can be read again in nearby future. Add cache
statistics.
2012-09-07 Rinat Ibragimov <[email protected]>
* rfsd: working defragmentation, but far away from optimal. Creates
'ideal' data layout and tries to move all blocks that can be moved
to their final position.
2012-09-04 Rinat Ibragimov <[email protected]>
tag:blockmover
* rfsd: make code actually move blocks with corresponding changes to
metadata structures
* misc/moveback: moves all blocks to beginning of file system
* misc/shuffler: randomly shuffles blocks
* misc/tuxonizer: imprint Tux logo on filesystem
2012-08-22 Rinat Ibragimov <[email protected]>
* rfsd: first line of code