Homec4science

Add `bin/files compact` for sharing file data storage

Authored by epriestley <git@epriestley.com> on Aug 21 2014, 20:47.

Description

Add bin/files compact for sharing file data storage

Summary:
Fixes T5912. When we write files, we attempt to share storage if two files have the same content.

In some cases, we may not share storage. Examples include:

  • Files migrated with bin/files migrate (it's simpler not to try to dedupe them).
  • Old files, from before storage was sharable (the mechanism did not exist).
  • Files broken by the bug fixed in T5912.

Add a script to compact files by pointing files with the same content hash at the same file contnet.

In the particular case of files broken by the bug in T5912, we know the hash of the file's content and will only point them at a file that we can load the data for, so this fixes them.

Compaction is not hugely useful in general, but this script isn't too complex and the ability to fix damage from the bug in T5912 is desirable. We could remove this capability eventually.

Test Plan:

  • Ran files compact --all --dry-run and sanity checked a bunch of the duplicates for actually being duplicates.
  • Migrated individual files with files compact Fnnn --trace and verified the storage compacted and all files survived the process.
  • Verified unused storage was correctly destroyed after removing the last reference to it.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5912

Differential Revision: https://secure.phabricator.com/D10327

Details

Committed
epriestley <git@epriestley.com>Aug 21 2014, 20:47
Pushed
aubortJan 31 2017, 17:16
Parents
rPHfca8b5ab1b36: Improve UX for repository updates
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHf43355855cb8: Add `bin/files compact` for sharing file data storage (authored by epriestley <git@epriestley.com>).Aug 21 2014, 20:47