[Feature flag] Enable atomic creation of object pools
What
Enable the :gitaly_atomic_create_object_pool
feature flag, which enables atomic semantics for the CreateObjectPool RPC. With the feature flag enabled we will create the object pool in a temporary location first and only move it into the target location in case it has been successfully created. This ensures that we won't ever end up with object pools that have only been partially created.
Owners
- Team: Gitaly
- Most appropriate slack channel to reach out to:
#g_gitaly
- Best individual to reach out to: pks-t
Expectations
What release does this feature occur in first?
What are we expecting to happen?
No change in behaviour should occur during normal operations. If object pool creation somehow failed though, we shouldn't see a half-initialized object pool in the target location.
What might happen if this goes wrong?
Creating object pools fails.
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) -
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