Skip to content
Martin Pool edited this page Nov 15, 2020 · 1 revision

As of 0.6.8, Conserve deletes data basically as described below.

This is a good place to start, but users might want to delete data for any of several reasons:

  1. To fit storage on a fixed-size disk.

  2. To constrain the cost of cloud storage.

  3. To recover from running a backup with the wrong source or the wrong exclusions, that wrote way too much or the wrong data.

  4. Because of a policy not to retain data more than a certain amount old.

  5. Because the backup included a sensitive or over-large specific file (or directory?) that they specifically don't want to retain.

Delete unreferenced blocks

Read all blocks that are present. Read all blocks that are referenced. Delete blocks that aren't referenced.

Doing it in this order should be safe even if new index hunks are being written in parallel (although I still wouldn't recommend it.)

However, we should rarely have unreferenced blocks: the most plausible case is due to an interrupted backup. So, deleting them is perhaps not very important.

Purge old versions

Pretty easy, just delete the subdirectory. Does require checking there are no children - or optionally delete all the children.

  1. Delete incomplete old versions.

  2. Delete specifically named old versions.

Auto-prune according to some retention policy

How is the policy defined? Maximum age (per level?) Maximum number of versions per level? Remove excessively frequent backups?

Clone this wiki locally