~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/gc.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-03-28 06:58:22 UTC
  • mfrom: (2379.2.3 hpss-chroot)
  • Revision ID: pqm@pqm.ubuntu.com-20070328065822-999550a858a3ced3
(robertc) Fix chroot urls to not expose the url of the transport they are protecting, allowing regular url operations to work on them. (Robert Collins, Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Garbage Collection
2
 
==================
3
 
 
4
 
Garbage collection is used to remove data from a repository that is no longer referenced.
5
 
 
6
 
Generally this involves locking the repository and scanning all its branches
7
 
then generating a new repository with less data.
8
 
 
9
 
Least work we can hope to perform
10
 
---------------------------------
11
 
 
12
 
* Read all branches to get initial references - tips + tags.
13
 
* Read through the revision graph to find unreferenced revisions. A cheap HEADS
14
 
  list might help here by allowing comparison of the initial references to the
15
 
  HEADS - any unreferenced head is garbage.
16
 
* Walk out via inventory deltas to get the full set of texts and signatures to preserve.
17
 
* Copy to a new repository
18
 
* Bait and switch back to the original
19
 
* Remove the old repository.
20
 
 
21
 
A possibility to reduce this would be to have a set of grouped 'known garbage
22
 
free' data - 'ancient history' which can be preserved in total should its HEADS
23
 
be fully referenced - and where the HEADS list is deliberate cheap (e.g. at the
24
 
top of some index).
25
 
 
26
 
possibly - null data in place without saving size.