Skip to content

Latest commit

 

History

History
24 lines (20 loc) · 1.25 KB

File metadata and controls

24 lines (20 loc) · 1.25 KB

TODO

Features

  • Test files deleted or not accessible mid-run
  • Test recovery: interruption during tar
  • Test recovery: interruption during upload
  • Support restoring files (single, multiple, whole backup)
  • Support configured temp dir
  • Support exclusions
  • Support pruning archives that are no longer relevant (done via progressive refresh, see below)

Pruning obsolete archives

  • Build list of files that are x% irrelevant and older than y days (y at least 180) done: db.get_archives_to_refresh (age = 180 + relevance_ratio * 180, 0 <= relevance_ratio < 1)
    • Remaining: factor in size too, e.g. age = 180 + relevance_ratio * (size/target_size) * 180
  • Update files table to flag files that are going to need new backups done: db.mark_archive_files_for_backup (backup/refresh.py)
  • Run backups / delete archives pending deletion from AWS / flag archives as deleted — done, unchanged: refresh only marks files for backup, the existing Backup/Purge machinery (upload, supersession, fix_stats, S3 delete, flagging) does the rest in the same run
  • Note: refresh does not flag archives "pending deletion" directly — it drives their relevant_size to 0 via ordinary supersession, and Purge's existing rule picks them up