Do not include object checksums in file contents listings.
[cumulus.git] / NEWS
1 0.11 [???]
2     - SNAPSHOT FORMAT CHANGES:
3         - The object slice syntax has been simplified; backup restores
4           are still possible but rebuilding the local database from
5           snapshots before v0.8 will require translation.
6         - Timestamps encoded into the top-level snapshot file name are
7           now UTC instead of the local time zone.  This should avoid
8           ambiguity and ensure sorted order is chronological order in
9           the face of time zone changes.
10         - The format identifier is now "Format: Cumulus Snapshot v0.nn"
11           instead of "Format: LBS Snapshot v0.nn" (but the updated tools
12           will accept either variation).
13         - Additional checksum algorithms: sha224, sha256 (sha1 is still
14           supported).
15     - LOCAL DATABASE CHANGES:
16         - Segment utilization data (per snapshot) is tracked
17           differently, to allow better segment cleaning decisions.
18     - New, greatly-enhanced file include/exclude filtering language.
19       This is based on the filter language is rsync (though simplified)
20       and allows glob-like patterns.  It also supports filter rules
21       merged at backup-time from files in the file system; this allows,
22       for example, users to control which files in their home
23       directories are included in backups.  See doc/exclude.rst for
24       details.
25     - A new Python-based command-line interface to Cumulus.  Eventually
26       this should be the only command directly invoked by the user; it
27       will automate backup expiration, segment cleaning, backup
28       mirroring, etc.  Configuration options are read from a config file
29       so they can be applied consistently.
30
31 0.10 [2012-05-29]
32     - Make a release that packages up various long-existing patches.
33     - Add FTP and SFTP storage backends (from Ralf Schlatterbeck and
34       Albert Dengg).
35     - Various bugfixes.
36
37 0.9 [2009-07-28]
38     - Rework storage layer, to make it easier to support local files,
39       S3, and in the future more storage backends.  cumulus-util now
40       permits URLS for specifying storage locations, including s3:// for
41       Amazon S3 storage.
42     - The script-level interface between the main cumulus binary and
43       remote storage has changed.  It should not yet be considered
44       completely finalized.
45     - Add a tool (cumulus-sync) for copying snapshots between storage
46       repositories.
47     - Add a (mostly proof-of-concept) FUSE interface for accessing
48       snapshots.
49     - Implement a basic garbage-collection command for deleting unused
50       segments.  There still needs to be a way to select snapshots to
51       delete (perhaps based on some type of schedule).
52     - Assorted minor bugfixes.
53
54 0.8 [2008-08-01]
55     - SNAPSHOT FORMAT CHANGE: The snapshot format has been extended to
56       allow the local database to be partially rebuilt from the contents
57       of the metadata log.  This may be useful for disaster recovery and
58       other scenarios.  The changes are small, but old tools will not
59       read the new backups.
60     - Add the --rebuild-statcache option which will re-read all files
61       instead of depending on the statcache file to be correct.  This
62       will additionally print warnings if a file has changed but would
63       not have been detected as changed based on the statcache, and will
64       add subfile incremental signatures for existing files that do not
65       have them.
66
67 0.7 [2008-06-23]
68     - LOCAL DATABASE CHANGE: The addition of subfile incrementals has
69       requires an extension to the local database.  The upgrade script
70       contrib/upgrade0.7-localdb.sql should be run prior to running
71       backups with this version.
72     - Name change: the system is now known as Cumulus (replacing the old
73       name of "LBS").  Some traces of the old name still remain.
74     - Initial support for direct backups to remote storage.  A sample
75       script is provided for backing up to Amazon S3.  Other scripts
76       should be simple to write.  The interface should not yet be
77       considered stable, and may change in a future release.
78     - Support for efficient subfile incremental backups.  Changes to a
79       small portion of a file do not require re-uploading substantially
80       all of the file, even in cases where there is an insertion or
81       deletion that shifts most of the file contents.
82     - Allow selected files/directories to be restored, not simply an
83       entire snapshot.  Additionally, restore files in an order that
84       should optimize performance (restore files based on how they are
85       grouped into segments, instead of lexicographic order).
86       Currently, the implementation of these changes requires that all
87       metadata be loaded into memory when the restore tool runs, so it
88       is more memory-intensive than the old version.  This may be fixed
89       in a future version; in the meantime, if the current restore tool
90       requires too much memory, try the old restore tool or the
91       restore.pl script.
92     - Add a verbose ("-v") flag.  By default, files will not be listed
93       as they are backed up.  The old behavior can be turned back on
94       with -v.
95
96 0.6 [2008-02-19]
97     - SNAPSHOT FORMAT CHANGE: A few minor tweaks have been made to the
98       snapshot format.  There is nothing substantial--this is primarily
99       a cleaning up of the format before use becomes more widespread.
100       An efficient and explicit means for representing sparse files has
101       been added to the format.  Updated tools will be needed to
102       properly understand the new snapshots.  Tools will continue to be
103       able to read the old snapshot format.
104     - LOCAL DATABASE CHANGE: The local database has been changed so that
105       segment utilization data for past snapshots is stored more
106       efficiently.  The script in contrib/upgrade0.6-localdb.sql must be
107       run on a database to upgrade it prior to running backups with the
108       new tool.
109     - The statcache implementation has been reworked, and the format
110       changed.  The first backup will run more slowly since the old
111       statcache data will be ignored.  New statcache data will be
112       written to statcache2.  The old statcache file can be deleted.
113     - Metadata is shared between snapshots where possible.  The
114       --full-metadata option can be used to disable this (completely
115       writing out all metadata with the new snapshot).
116     - Add an "intent" field to snapshots, which specifies informally how
117       long a snapshot is intended to be kept.  For example, 1 can be
118       used for daily snapshots, and 7 for weekly snapshots.  Segment
119       cleaning is now partly guided by intent values, but tuning of the
120       cleaning algorithms is not yet finished.
121
122 0.5.1 [2007-11-13]
123     - Have the lbs-util tool check the version number when reading a
124       snapshot, and signal an error if the format is not recognized.
125     - Include a sample script, contrib/parity-gen, for creating
126       RAID-like parity sets to recover from some segment corruption.
127       The par2 command (http://parchive.sourceforge.net/) is used to
128       actually generate the parity sets; the parity-gen script simply
129       automates maintaining the parity sets.
130
131 0.5 [2007-10-16]
132     - Much improved Python interface for accessing and manipulating LBS
133       archives and local database information.  The interface should not
134       yet be considered completely stable.
135     - Python implementation of lbs-util now includes most of the
136       features of the Perl implementation, plus some other new features.
137       The Perl library and utility are deprecated and have been removed
138       from this release.
139     - Preliminary snapshot restore support in lbs-util.  This is still
140       not yet extensively tested.
141
142 0.4 [2007-08-24]
143     - Documentation improvements: a getting started README, and a
144       description of some of the implementation details.
145     - Include an example filter script, lbs-filter-gpg, for encrypting
146       segment data as it is written.
147     - Add support for signed snapshot descriptor files (via the
148       --signature-filter option).  Due to the checksums contained in the
149       snapshot descriptor, the signature covers the entire contents of
150       the snapshot.
151     - Preview release of lbs-util.py, a Python-based program for
152       managing LBS snapshots.  It currently implements a very simple
153       form of automatic segment cleaning, though this isn't much tested.
154     - Improved segment repacking support; after cleaning segments,
155       objects can be written out in different groups based on age.  This
156       may help with long-term segment cleaning efficiency, but probably
157       needs more tuning.
158
159 0.3 [2007-08-10]
160     - LOCAL DATABASE CHANGE: A checksums file is now written out along
161       with the snapshot descriptor that contains checksums of segments
162       used in a snapshot.  This will allow quick integrity checks of a
163       snapshot, without needing to decompress or decrypt the segment
164       files.  The local database schema was modified to store the
165       checksums for segments.
166     - Build dependence on libtar has been dropped.  All necessary
167       support for writing TAR files is now directly included with the
168       source.
169     - The snapshot format is now documented, at least in part.  See
170       format.txt.
171     - Snapshots now include link count and inode number for files with
172       multiple hard links, so that a restore program could determine
173       which files should be hard linked on restore.  The reference
174       restore.pl script does not use this.
175     - Bugfix: Print a help message instead of crashing if no files are
176       specified.
177     - Bugfix: File descriptors of files being backed up were closed
178       twice.  In some cases this might have led to an unrelated file
179       being closed (if the file descriptor was quickly re-used).
180     - Preview of a new lbs-util command for maintaining snapshots.
181       Functionality is currently limited.
182
183 0.2.2 [2007-07-27]
184     - Update reference restore.pl script to handle octal/hexadecimal
185       (format change introduced in 0.2).
186     - Better support for mixing multiple backup schemes: the statcache
187       file is now per-scheme, so performance should be better in cases
188       where multiple different backups (of different source directories)
189       are made, all sharing the same local database directory.
190
191 0.2.1 [2007-07-20]
192     - Bugfix: Do not print an error when only one directory is specified
193       to back up.
194
195 0.2 [2007-07-20]
196     - SNAPSHOT FORMAT CHANGE: Metadata logs in backups can now contain
197       octal and hexadecimal values.  Old restore programs may not be
198       able to read these new backups.  The reference restore.pl script
199       has not yet been updated.
200     - LOCAL DATABASE CHANGE: Backups may be assigned a name with the
201       --scheme= command-line option, to allow different backup sets to
202       be mixed in the same directory.  The database schema for the local
203       database is changed.
204     - Improved selection (inclusion/exclusion) of files to be included
205       in a backup.
206     - Device major/minor numbers are dumped for block and character
207       devices.
208
209 0.1 [2007-07-14]
210     - Initial release.