[Feature flag] Enable use of OptimizeRepository in FetchIntoObjectPool
What
Enable the :gitaly_fetch_into_object_pool_optimize_repository
feature flag, which enables usage of OptimizeRepository in FetchIntoObjectPool. This unifies the maintenance strategy for object pools and repositories and fixes discrepancies between both strategies.
Owners
- Team: Gitaly
- Most appropriate slack channel to reach out to:
#g_create_gitaly
- Best individual to reach out to: NAME
Expectations
What release does this feature occur in first?
What are we expecting to happen?
Repository maintenance of object pools is handled heuristically by OptimizeRepository. No user-visible change should occur, but the end result should be less time spent in optimizing pool repositories while keeping more auxiliary data structures up to date.
What might happen if this goes wrong?
Maintenance may screw over pooled repositories. This is unlikely to happen though: we have already been running OptimizeRepository on pool repositories as part of our nightly maintenance job.
What can we monitor to detect problems with this?
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) -
Enable on production 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.