f7ce16660bd4e758cb39772880f3039f3120bdaf
[cumulus.git] / format.txt
1                        Backup Format Description
2                   for an LFS-Inspired Backup Solution
3
4 NOTE: This is simply a proposal at this point in time, and not yet
5 implemented.  Details are subject to change.
6
7 ========================================================================
8
9 Goals: To provide a stable and extensible data storage format for
10 efficient remote filesystem backups.  Among the features desired in the
11 format are:
12   - Support for grouping unchanging file contents together, and reusing
13     it for future backups.
14   - Nonetheless allow old backups to be deleted (at least those parts
15     that are not also used by newer backups).
16   - Support some form of rdiff-style incremental differences within a
17     file.
18 The current plan is to implement compression and encryption separately:
19 not as part of the base format, but simply by passing the backup data
20 through filters such as bzip2 or gpg.
21
22 Data is organized into a collection of _objects_, which are grouped
23 together for storage purposes into _segments_.  Objects may refer to
24 other objects; a snapshot consists of a tree object which in turn refers
25 to other objects containing file data.  A new snapshot may be created
26 which refers to some of the old objects with file data, if those files
27 have not changed.