[Feature flag] Enable geometric repacking in repository maintenance
What
Enable the :gitaly_geometric_repacking
feature flag, which enables geometric repacking as part of our repository maintenance. Geometric repacking is a new way to repack objects that allows us to do full repacks less frequently. It should thus result in reduced overhead caused by our repository maintenance.
This rolls out #4998 (closed).
Owners
- Team: Gitaly
- Most appropriate slack channel to reach out to:
#g_gitaly
- Best individual to reach out to: pks-gitlab
Expectations
What release does this feature occur in first?
What are we expecting to happen?
We should overall spend less time repacking objects in a repository. We are effectively moving to a rate-limited approach, where we only perform a fulll repack once per day and then do geometric repacks in between.
What might happen if this goes wrong?
As this changes the way repositories are packed the worst case would be repository corruption.
What can we monitor to detect problems with this?
- Monitor the repository housekeeping dashboard, especially metrics regarding packfiles and repacks.
Roll Out Steps
-
Enable on staging -
Is the required code deployed on staging? (howto) -
Enable on staging (howto) -
Add featureflagstaging to this issue (howto) -
Test on staging (howto) -
Verify the feature flag was used by checking Prometheus metric gitaly_feature_flag_checks_total
-
-
Enable on production -
Is the required code deployed on production? (howto) -
Progressively enable in production (howto) -
Add featureflagproduction to this issue -
Verify the feature flag was used by checking Prometheus metric gitaly_feature_flag_checks_total
-
-
Default-enable the feature flag (optional, only required if backwards-compatibility concerns exist) -
Wait for release containg default-disabled feature flag. -
Change the feature flag to default-enabled (howto) -
Wait for release containing default-enabled feature flag.
-
-
Remove feature flag
Please refer to the documentation of feature flags for further information.
Edited by Patrick Steinhardt