Provide bin/garbage for interacting with garbage collection
Summary:
Fixes T9494. This:
- Removes all the random GC.x.y.z config.
- Puts it all in one place that's locked and which you use bin/garbage set-policy ... to adjust.
- Makes every TTL-based GC configurable.
- Simplifies the code in the actual GCs.
Test Plan:
- Ran bin/garbage collect to collect some garbage, until it stopped collecting.
- Ran bin/garbage set-policy ... to shorten policy. Saw change in web UI. Ran bin/garbage collect again and saw it collect more garbage.
- Set policy to indefinite and saw it not collect garabge.
- Set policy to default and saw it reflected in web UI / collect.
- Ran bin/phd debug trigger and saw all GCs fire with reasonable looking queries.
- Read new docs.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T9494
Differential Revision: https://secure.phabricator.com/D14219